頑皮字串大列表是一個不斷發展的字串列表,當用作用戶輸入資料時,這些字串很可能會導致問題。這旨在幫助自動和手動 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)
麻省理工學院