
Курируемый список вредоносных и граничных входных строк (blns.txt/blns.json) для QA- и security-тестирования валидации пользовательского ввода, инъекций и обработки Unicode.
Big List of Naughty Strings — это развивающийся список строк, которые с высокой вероятностью вызывают проблемы при использовании в качестве пользовательских данных. Он предназначен для помощи как в автоматизированном, так и в ручном QA-тестировании; полезен всякий раз, когда ваш QA-инженер заходит в бар.
Даже многомиллиардные компании с огромным объёмом автоматизированного тестирования не могут найти каждый плохой ввод. Например, посмотрите, что происходит, когда вы пытаетесь опубликовать в Twitter нулевой пробел (U+200B):
Хотя это и не вредоносная ошибка, и типичные пользователи не публикуют в Twitter странный юникод, «internal server error» при неожиданном вводе никогда не является положительным опытом для пользователя и может на самом деле быть симптомом более глубоких проблем с валидацией строк. Big List of Naughty Strings призван помочь выявить такие проблемы.
blns.txt состоит из строк, разделённых переводами строк, и комментариев, которым предшествует #. Комментарии делят строки на разделы для удобного ручного чтения и копирования/вставки в формы ввода. Для тех, кто хочет получить доступ к строкам программно, предоставляется файл blns.json, содержащий массив со всеми удалёнными комментариями (папка scripts содержит скрипт Python, используемый для генерации blns.json).
Не стесняйтесь отправлять pull request для добавления новых строк или дополнительных разделов. Однако, пожалуйста, не отправляйте pull request с очень длинными строками (255+ символов), так как это делает список гораздо более трудным для просмотра.
Точно так же, пожалуйста, не отправляйте pull request, которые ставят под угрозу ручную удобность использования файла. Это включает тестовую строку EICAR, которая может привести к тому, что файл будет помечен антивирусными сканерами, а также файлы, которые изменяют кодировку blns.txt. Кроме того, не отправляйте строку с нулевым символом (U+0000), так как она меняет формат файла на GitHub на бинарный и делает его нечитаемым в pull request. Наконец, при добавлении или удалении строки, пожалуйста, обновляйте все файлы при выполнении pull request.
Big List of Naughty Strings предназначен для использования для программного обеспечения, которым вы владеете и управляете. Некоторые из Naughty Strings могут указывать на уязвимости безопасности, и в результате использование таких строк со сторонним программным обеспечением может быть преступлением. Сопровождающий не несёт ответственности за любые негативные действия, возникшие в результате использования списка.
Кроме того, Big List of Naughty Strings не является полностью исчерпывающей заменой формального тестирования безопасности/пентестинга для вашего сервиса.
Различные реализации Big List of Naughty Strings попали в различные менеджеры пакетов. Они поддерживаются сторонними лицами, но их можно найти здесь:
Пожалуйста, откройте PR, чтобы перечислить другие.
Max Woolf (@minimaxir)
MIT