
Liste sélectionnée de chaînes d'entrée malveillantes et de cas limites (blns.txt/blns.json) pour les tests QA et de sécurité de la validation des entrées utilisateur, de l'injection et de la gestion de l'unicode.
La Big List of Naughty Strings est une liste évolutive de chaînes qui ont une forte probabilité de causer des problèmes lorsqu'elles sont utilisées comme données d'entrée utilisateur. Elle est destinée à aider aux tests QA automatisés et manuels ; utile chaque fois que votre ingénieur QA entre dans un bar.
Même les entreprises valant plusieurs milliards de dollars disposant d'énormes quantités de tests automatisés ne peuvent pas détecter toutes les entrées défectueuses. Par exemple, regardez ce qui se passe lorsque vous essayez de tweeter un espace de largeur nulle (U+200B) sur Twitter :
Bien qu'il ne s'agisse pas d'une erreur malveillante, et que les utilisateurs typiques ne tweetent pas d'unicode bizarre, une « internal server error » pour une entrée inattendue n'est jamais une expérience positive pour l'utilisateur, et peut en fait être le symptôme de problèmes plus profonds de validation des chaînes. La Big List of Naughty Strings vise à aider à révéler de tels problèmes.
blns.txt est constitué de chaînes délimitées par des retours à la ligne et de commentaires précédés de #. Les commentaires divisent les chaînes en sections pour faciliter la lecture manuelle et le copier/coller dans des formulaires de saisie. Pour ceux qui souhaitent accéder aux chaînes par programmation, un fichier blns.json est fourni, contenant un tableau avec tous les commentaires supprimés (le dossier scripts contient un script Python utilisé pour générer le blns.json).
N'hésitez pas à envoyer une pull request pour ajouter davantage de chaînes ou des sections supplémentaires. Cependant, veuillez ne pas envoyer de pull requests avec des chaînes très longues (255+ caractères), car cela rend la liste beaucoup plus difficile à consulter.
De même, veuillez ne pas envoyer de pull requests qui compromettent l'utilisabilité manuelle du fichier. Cela inclut la chaîne de test EICAR, qui peut entraîner le signalement du fichier par les antivirus, ainsi que les fichiers qui modifient l'encodage de blns.txt. De plus, n'envoyez pas de chaîne contenant un caractère nul (U+0000), car cela change le format du fichier sur GitHub en binaire et le rend illisible dans les pull requests. Enfin, lors de l'ajout ou de la suppression d'une chaîne, veuillez mettre à jour tous les fichiers lorsque vous effectuez une pull request.
La Big List of Naughty Strings est destinée à être utilisée pour les logiciels que vous possédez et gérez. Certaines des Naughty Strings peuvent indiquer des vulnérabilités de sécurité et, par conséquent, l'utilisation de telles chaînes avec des logiciels tiers peut constituer un délit. Le mainteneur n'est pas responsable des actions négatives résultant de l'utilisation de la liste.
De plus, la Big List of Naughty Strings n'est pas un substitut entièrement complet à des tests de sécurité/pénétration formels pour votre service.
Diverses implémentations de la Big List of Naughty Strings ont été publiées dans différents gestionnaires de paquets. Celles-ci sont maintenues par des tiers, mais peuvent être trouvées ici :
Veuillez ouvrir une PR pour en lister d'autres.
Max Woolf (@minimaxir)
MIT