GithubHelp home page GithubHelp logo

felipesilber / 20232bset03p2-felipesilber Goto Github PK

View Code? Open in Web Editor NEW

This project forked from josercf/20232bset03p2

0.0 0.0 0.0 27 KB

Inteli - Engenharia de Software | Avaliação 2023-2B P2

License: MIT License

JavaScript 100.00%

20232bset03p2-felipesilber's Introduction

20232BSET03P2

Inteli - Engenharia de Software | Avaliação 2023-2B P2

Vulnerabilidades:

SQL Injection: no código fornecido, era possível a realização de uma SQL Injection através da URL.

  • Para corrigir, houve a substituição de db.run por db.prepare (dessa forma, os parâmetros passados são tratados de forma isolada de instruções SQL) e a utilização do biblioteca express-validator para validar o campo "nome" passado no corpo da requisição.

Falta de lógica para verificar se um registro existe antes de adicionar um voto.

  • Para corrigir, foi implementada uma lógica de verificação, como mostrado abaixo:
const check = db.prepare(`SELECT COUNT(*) as count FROM ${animalType} WHERE id = ?`);
  check.get(id, (err, row) => {
    check.finalize();

    if (err) {
      res.status(500).json({ error: "Erro ao verificar o banco de dados" });
    } else {
      const count = row.count;

      if (count === 0) {
        res.status(404).json({ error: "Registro não encontrado" });
      } else {
        const update = db.prepare(`UPDATE ${animalType} SET votes = votes + 1 WHERE id = ?`);
        update.run(id, function (err) {
          update.finalize();

Erros tratados de maneira inadequada (alguns erros estavam sendo tratados de forma que pudessem vazar informações).

  • Para corrigir, houve a substituição de mensagens de erro por modelos menos específicos e mais genéricos, diminuindo, assim, o risco de vazamento de dados. Abaixo está um exemplo:

No endpoint POST /vote/:animalType/:id, houve a substituição da mensagem de erro "Registro não encontrado" por "Erro ao tentar encontrar o animal desejado".

Métodos incompletos (alguns métodos ainda não estavam implementados, o que impossibilitava o funcionamento completo da aplicação.

  • Para corrigir, foram implementadas lógicas para os endpoints POST /dogs e GET /dogs, que estavam faltando.

20232bset03p2-felipesilber's People

Contributors

felipesilber avatar josercf avatar

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.