1
resposta

Controle de acesso

Na aula de prevenção de broken access, é dito:

[01:02] O que isso quer dizer? Pare para pensar, o controle de acesso é feito pelo seu código, só que se o controle de acesso é dinâmico, vem do banco e de alguma forma o atacante injetou valores lá no banco, você acabou de perder o controle de acesso.

Qual seria a melhor forma de lidar com permissões e roles, já que não é recomendado utilizar campos no banco para gerar o controle de acesso do usuário?

Obrigado desde já!

1 resposta

Acredito que seja perfeitamente normal utilizar tabelas no banco para salvar permissoes e roles, até porque frameworks como o Spring Security utilizam elas. O que ele quis dizer na transcrição é que esses problemas de segurança estão interligados e mesmo que você não tenha um problema de Broken Access por se dizer, alguma outra brecha no seu sistema pode ser explorada para quebrar o controle de acesso.

"Qual seria a melhor forma de lidar com permissões e roles, já que não é recomendado utilizar campos no banco para gerar o controle de acesso do usuário?"

Como explicado anteriormente, não é que não seja recomendado, mas caso você tenha uma funcionalidade crítica de uma aplicação que você queira proteger de uma possível falha no banco de dados, acredito que seja possivel controlar as regras de acesso e perfis no próprio código da aplicação de forma estática, mas sempre usando APIs bem consolidadas e confiáveis para não tentar inventar a roda e deixar uma nova vulnerabilidade.

Caso algum colega puder acrescentar ou argumentar sobre algo que deixei passar fique a vontade! :D