
Lista curada de strings de entrada maliciosas e de casos extremos (blns.txt/blns.json) para QA e testes de segurança de validação de entrada do usuário, injeção e tratamento de unicode.
A Big List of Naughty Strings é uma lista em evolução de strings que têm alta probabilidade de causar problemas quando usadas como dados de entrada do usuário. Ela é destinada ao uso em testes de QA automatizados e manuais; útil sempre que seu engenheiro de QA entra em um bar.
Mesmo empresas multibilionárias com enormes quantidades de testes automatizados não conseguem encontrar todas as entradas inválidas. Por exemplo, veja o que acontece quando você tenta tuitar um espaço de largura zero (U+200B) no Twitter:
Embora isso não seja um erro malicioso, e usuários típicos não estejam tuitando unicode estranho, um "internal server error" para uma entrada inesperada nunca é uma experiência positiva para o usuário, e pode, na verdade, ser um sintoma de problemas mais profundos de validação de strings. A Big List of Naughty Strings tem como objetivo ajudar a revelar tais problemas.
blns.txt consiste em strings delimitadas por quebras de linha e comentários que são precedidos por #. Os comentários dividem as strings em seções para facilitar a leitura manual e a cópia/colagem em formulários de entrada. Para aqueles que desejam acessar as strings programaticamente, é fornecido um arquivo blns.json contendo um array com todos os comentários removidos (a pasta scripts contém um script Python usado para gerar o blns.json).
Sinta-se à vontade para enviar um pull request para adicionar mais strings ou seções adicionais. No entanto, por favor não envie pull requests com strings muito longas (255+ caracteres), pois isso torna a lista muito mais difícil de visualizar.
Da mesma forma, por favor não envie pull requests que comprometam a usabilidade manual do arquivo. Isso inclui a string de teste EICAR, que pode fazer com que o arquivo seja sinalizado por scanners antivírus, e arquivos que alterem a codificação de blns.txt. Além disso, não envie uma string de caractere nulo (U+0000), pois ela altera o formato do arquivo no GitHub para binário e o torna ilegível em pull requests. Por fim, ao adicionar ou remover uma string, atualize todos os arquivos ao realizar um pull request.
A Big List of Naughty Strings destina-se a ser usada para software que você possui e gerencia. Algumas das Naughty Strings podem indicar vulnerabilidades de segurança e, como resultado, usar tais strings com software de terceiros pode ser um crime. O mantenedor não é responsável por quaisquer ações negativas que resultem do uso da lista.
Além disso, a Big List of Naughty Strings não é um substituto totalmente abrangente para testes formais de segurança/penetração para o seu serviço.
Várias implementações da Big List of Naughty Strings chegaram a diversos gerenciadores de pacotes. Elas são mantidas por terceiros, mas podem ser encontradas aqui:
Por favor, abra um PR para listar outras.
Max Woolf (@minimaxir)
MIT