Testes
Provar que o acesso é negado, e não apenas que é concedido.
Testes de segurança
Uma configuração de segurança tem uma propriedade desagradável: ela falha silenciosamente na direção que importa. Se uma regra é restritiva demais, você descobre em trinta segundos — alguém reclama por não conseguir acessar uma página. Se ela é permissiva demais, ninguém reclama. Nunca. A aplicação funciona, todo mundo acessa o que quer, e a falha é descoberta por uma auditoria, ou por alguém com intenções menos nobres.
Os testes de segurança corrigem essa assimetria, e têm uma particularidade: os casos interessantes são os casos negativos. Um teste que verifica que um administrador chega ao console de administração tem pouco valor; esse caminho é percorrido o tempo todo. O teste que importa é aquele que verifica que um usuário comum recebe um 403, que um anônimo recebe um 401, e que um cliente não consegue ler a fatura de outro cliente.
Esses testes têm uma segunda virtude: eles documentam seu modelo de permissões de forma executável. Quando alguém adicionar uma regra daqui a seis meses e acabar absorvendo, por acidente, uma regra mais específica, será o teste negativo que vai barrá-la — não a revisão de código.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão