顽皮字符串大列表是一个不断发展的字符串列表,当用作用户输入数据时,这些字符串很可能会导致问题。这旨在帮助自动和手动 QA 测试;每当您的 QA 工程师走进酒吧时都非常有用。
即使拥有大量自动化测试的价值数十亿美元的公司也无法找到所有错误的输入。例如,看看当您尝试在 Twitter 上发布零宽度空格 (U+200B) 时会发生什么:
尽管这不是恶意错误,并且典型用户不会发布奇怪的 unicode 推文,但意外输入的“内部服务器错误”对于用户来说从来都不是积极的体验,实际上可能是更深层次的字符串验证问题的症状。 《顽皮字符串大清单》旨在帮助揭示此类问题。
blns.txt
由换行符分隔的字符串和前面带有#
注释组成。注释将字符串分为几个部分,以便于手动阅读和复制/粘贴到输入表单中。对于那些想要以编程方式访问字符串的人,提供了一个blns.json
文件,其中包含一个删除了所有注释的数组( scripts
文件夹包含用于生成blns.json
Python 脚本)。
请随意发送拉取请求以添加更多字符串或其他部分。但是,请不要发送带有非常长字符串(255 个以上字符)的拉取请求,因为这会使列表更难以查看。
同样,请不要发送影响文件手动可用性的拉取请求。这包括 EICAR 测试字符串(它可能导致文件被防病毒扫描程序标记)以及更改blns.txt
编码的文件。另外,请勿发送空字符 (U+0000) 字符串,因为它会将 GitHub 上的文件格式更改为二进制并使其在拉取请求中不可读。最后,添加或删除字符串时,请在执行拉取请求时更新所有文件。
淘气字符串大列表旨在用于您拥有和管理的软件。一些 Naughty Strings 可能表明存在安全漏洞,因此在第三方软件中使用此类字符串可能会构成犯罪。维护者对因使用该列表而导致的任何负面行为不承担任何责任。
此外,顽皮字符串大列表并不能完全替代您的服务的正式安全/渗透测试。
顽皮字符串大列表的各种实现已经出现在各种包管理器中。这些由外部各方维护,但可以在这里找到:
图书馆 | 关联 |
---|---|
节点 | https://www.npmjs.com/package/blns |
节点 | https://www.npmjs.com/package/big-list-of-naughty-strings |
。网 | https://github.com/SimonCropp/NaughtyStrings |
PHP | https://github.com/mattsparks/blns-php |
C++ | https://github.com/eliabieri/blnscpp |
请打开 PR 列出其他内容。
马克斯·伍尔夫 (@minimaxir)
麻省理工学院