Coder Social home page Coder Social logo

githiago-f / hackme-store Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 185 KB

Try and hack this intentionally vulnerable nodejs e-commerce application! Possible tests are listed on wiki.

License: MIT License

Dockerfile 0.91% JavaScript 65.78% CSS 4.77% Pug 25.11% Shell 3.43%
express nodejs e-commerce expressjs

hackme-store's Introduction

Vulnerability testign

About this system domain

Welcome to our online store platform, designed to help you sell your products with ease! Our software is an all-in-one solution that simplifies the process of managing your online store. Our objective is to provide you with a platform that allows you to sell your products online while managing your data, credit cards, orders, and products with ease.

Our software is built to provide you with everything you need to run your online store. Whether you're a small business owner or a large corporation, our platform offers the tools and features you need to create, manage, and grow your online store. You can create advertisements, manage every purchase and order you receive, and easily track your inventory with our intuitive dashboard.

We believe that selling things online should be easy and accessible to everyone, which is why we've created a platform that is both user-friendly and powerful. With our software, you can focus on what you do best – creating great products – while we take care of the rest. Join us today and start selling your products online with ease!

Technologies Used

How to run this project

# have an instance of mysql running and change '/infra/db/connection.js'
# to access this instance
# and then you can execute the project with:
$ npm install
$ npm run migrate
$ npm run seed
$ npm run dev # can use npm run docker or npm start, also.
# an alternative is:
$ docker-compose up

License

This project is licensed under the MIT License - see the LICENSE file for details.

hackme-store's People

Contributors

githiago-f avatar

Watchers

 avatar

Forkers

hackmogador

hackme-store's Issues

Quebra de senhas com hydra

Quebre senhas simples com Hydra. Isso pode servir como uma forma de demonstrar porque devemos usar senhas fortes e melhorar nossa politica de segurança na plataforma.

Todo list:

[ ] Explicar como funciona o Hydra
[ ] Melhorar o arquivo de politica de segurança para que os devs saibam como resolver isso

HTTPS Demo com node:https

Utilizar node:https como servidor https para o projeto.

Deve-se gerar um par de chaves ssl:

$ openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

Esse comando irá gerar duas chaves que iremos usar para a criptografia.

Podemos atualizar o arquivo app.js para ser parecido com isso (apenas um exemplo):

import { createServer } from 'node:https';
import { readFileSync } from 'node:fs';
const app = express();

const options = {
  key: readFileSync('caminho/para/key.pem'),
  cert: readFileSync('caminho/para/cert.cert')
};

const httpsServer = createServer(options, app);

httpsServer.listen(443, () => {
    let { address, family, port } = httpsServer.address();
    if(family === 'IPv6' && address === '::') {
        address = 'localhost';
    }
    app.set('address', address);
    rootLogger.info(`Listening on http://${address}:${port}`);
});

Referencias

Politica de segurança

desenvolver e implementar utilizando um padrão de politica de privacidade e segurança - ampliar segurança do sistema em conjunto.

Estrutura da politica de segurança e privacidade

Politica de segurança e privacidade

Resumir a necessidade de tal politica, elaborando os pontos de "Confidencialidade", "autenticidade", "disponibilidade" e "integridade". Devemos destacar como prertendemos adaptar nosso sistema a estes conceitos e por se tratar de um contexto de vendas e compras online, teremos que garantir também a "Irretratabilidade ou não repúdio", isto é, garantir a impossibilidade de negar a autoria em relação a uma transação anteriormente feita, seja compra ou anuncio de produtos.

Autenticidade

Explicar como deve ser realizada a identificação de pessoa natural portadora de dados e como ela deve se portar ao:

  • Adicionar produtos
  • Acessar pedidos
  • Atualizar dados de pedidos
  • Realizar pedidos

Confidencialidade

Explicar a necessidade de se manter a confidencialidade de informações pertencentes à pessoa natural portadora de dados.
Isto é, garantir que apenas o portador de um cartão por exemplo, poderá acessar esta informação.

Deve listar formas de manter as informações sensíveis confidenciais, e garantir que todas as comunicações cliente-servidor serão confidenciais.

Disponibilidade

Descrever a relevancia do serviço permanecer no ar, destacando relevantes e possíveis causas de queda e como mitigá-las.
Será importante descrever os processos e post-mortem? Se sim, como deve ser armazenado o documento de incidente e resolução?

Integridade

Descrever como os processos internos da aplicação devem permitir auditoria sobre cada operação desempenhada e garantir o estado original (estabelecido pelo proprietário dos dados) assim como um histórico de alterações sobre cada atualização.

Ex.: Caso um pedido seja alterado, deve-se manter um log confiável de cada alteração e quem o alterou (incluindo alterações feitas pelo sistema).

Orientações de segurança para o usuário final (formato de lista)

[TODO]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.