big-list-of-naughty-strings README

The project's README from github.com/minimaxir/big-list-of-naughty-strings. As one markdown file: README.md.

Big List of Naughty Strings

The Big List of Naughty Strings is an evolving list of strings which have a high probability of causing issues when used as user-input data. This is intended for use in helping both automated and manual QA testing; useful for whenever your QA engineer walks into a bar.

Why Test Naughty Strings?

Even multi-billion dollar companies with huge amounts of automated testing can't find every bad input. For example, look at what happens when you try to Tweet a zero-width space (U+200B) on Twitter:

Although this is not a malicious error, and typical users aren't Tweeting weird unicode, an "internal server error" for unexpected input is never a positive experience for the user, and may in fact be a symptom of deeper string-validation issues. The Big List of Naughty Strings is intended to help reveal such issues.

Usage

blns.txt consists of newline-delimited strings and comments which are preceded with #. The comments divide the strings into sections for easy manual reading and copy/pasting into input forms. For those who want to access the strings programmatically, a blns.json file is provided containing an array with all the comments stripped out (the scripts folder contains a Python script used to generate the blns.json).

Contributions

Feel free to send a pull request to add more strings, or additional sections. However, please do not send pull requests with very-long strings (255+ characters), as that makes the list much more difficult to view.

Likewise, please do not send pull requests which compromise manual usability of the file. This includes the EICAR test string, which can cause the file to be flagged by antivirus scanners, and files which alter the encoding of blns.txt. Also, do not send a null character (U+0000) string, as it changes the file format on GitHub to binary and renders it unreadable in pull requests. Finally, when adding or removing a string please update all files when you perform a pull request.

Disclaimer

The Big List of Naughty Strings is intended to be used for software you own and manage. Some of the Naughty Strings can indicate security vulnerabilities, and as a result using such strings with third-party software may be a crime. The maintainer is not responsible for any negative actions that result from the use of the list.

Additionally, the Big List of Naughty Strings is not a fully-comprehensive substitute for formal security/penetration testing for your service.

Library / Packages

Various implementations of the Big List of Naughty Strings have made it to various package managers. Those are maintained by outside parties, but can be found here:

Library Link
Node https://www.npmjs.com/package/blns
Node https://www.npmjs.com/package/big-list-of-naughty-strings
.NET https://github.com/SimonCropp/NaughtyStrings
PHP https://github.com/mattsparks/blns-php
C++ https://github.com/eliabieri/blnscpp

Please open a PR to list others.

Maintainer/Creator

Max Woolf (@minimaxir)

Social Media Discussions

License

MIT

big-list-of-naughty-strings (minimaxir/big-list-of-naughty-strings)

Searching Database…

Что это такое?Это подобранная коллекция строк, которые с высокой вероятностью ломают программное обеспечение при использовании в качестве пользовательского ввода. Она помогает QA-тестированию проверки ввода.
Это инструмент для тестирования или просто файл с данными?Это просто данные, а не инструмент: удобочитаемый файл blns.txt с комментариями и разделами, а также упрощённый массив в blns.json для программного использования.
Как мне на самом деле использовать эти строки в своих тестах?Копируйте строки из blns.txt и вставляйте их в формы ввода для ручного QA или загружайте blns.json в свой автоматизированный набор тестов, чтобы подавать строки как входные данные.
Есть ли правила, что можно добавлять в список?Участников просят не добавлять очень длинные строки (255+ символов), тестовую строку антивируса EICAR и нулевые символы, так как они мешают ручному чтению или портят файл на GitHub.
Для кого предназначен этот список?Для QA-инженеров и разработчиков, которым нужно проверять на прочность валидацию ввода, обработку кодировок и граничные случаи unicode в своих приложениях.
Есть ли пакеты для других языков программирования?Да, существуют реализации, поддерживаемые сообществом, для менеджеров пакетов Node, .NET, PHP и C++. Ссылки на них приведены в README.
Зачем на практике тестировать с помощью «коварных» строк?Даже крупные компании упускают граничные случаи. В README приведён пример: твит с пробелом нулевой ширины (U+200B) в Twitter вызвал внутреннюю ошибку сервера. Это показывает, как неожиданный ввод ломает реальные системы.
Список всё ещё обновляется?Да, его описывают как развивающийся список, а сопровождающий Max Woolf принимает пул-реквесты с новыми строками или разделами.
Creator
minimaxir
Size
0.3 MB
Stars
47.7K
Updated
CommitApr 17
Age
11y
Commits · 90 Days