
ユーザー入力の検証、インジェクション、Unicode処理のQAおよびセキュリティテスト向けに厳選された、悪意ある入力文字列やエッジケース入力文字列のリスト(blns.txt/blns.json)。
意地悪な文字列のビッグリストは、ユーザー入力データとして使用された際に問題を引き起こす可能性が高い文字列の進化し続けるリストです。これは、自動および手動のQAテストの両方を支援するために使用することを目的としています。QAエンジニアがバーに立ち寄るような場面で役立ちます。
膨大な量の自動テストを備えた数十億ドル規模の企業でさえ、すべての不正な入力を発見することはできません。たとえば、Twitterでゼロ幅スペース(U+200B)をツイートしようとすると何が起こるか見てみましょう:
これは悪意のあるエラーではなく、一般的なユーザーが奇妙なUnicodeをツイートすることはありませんが、予期しない入力に対する「内部サーバーエラー」はユーザーにとって決して良い体験ではなく、実際にはより深い文字列検証の問題の症状である可能性があります。意地悪な文字列のビッグリストは、そのような問題を明らかにするのに役立つことを目的としています。
blns.txtは、改行で区切られた文字列と、#で始まるコメントで構成されています。コメントは文字列をセクションに分割し、手動での読み取りや入力フォームへのコピー&ペーストを容易にします。プログラムで文字列にアクセスしたい人のために、すべてのコメントが取り除かれた配列を含むblns.jsonファイルが提供されています(scriptsフォルダにはblns.jsonを生成するために使用されるPythonスクリプトが含まれています)。
文字列や追加のセクションを追加するためのプルリクエストを自由に送ってください。ただし、非常に長い文字列(255文字以上)を含むプルリクエストは送らないでください。リストの閲覧がはるかに困難になるためです。
同様に、ファイルの手動での使いやすさを損なうプルリクエストは送らないでください。これには、EICARテスト文字列(ウイルス対策スキャナーによってファイルがフラグ付けされる可能性があります)や、blns.txtのエンコーディングを変更するファイルが含まれます。また、null文字(U+0000)の文字列は送らないでください。GitHub上のファイル形式がバイナリに変更され、プルリクエストで読めなくなるためです。最後に、文字列を追加または削除する場合は、プルリクエストを実行する際にすべてのファイルを更新してください。
意地悪な文字列のビッグリストは、あなたが所有および管理するソフトウェアで使用することを目的としています。意地悪な文字列の一部はセキュリティ脆弱性を示す可能性があり、その結果、そのような文字列をサードパーティのソフトウェアで使用することは犯罪となる可能性があります。メンテナーは、このリストの使用から生じるいかなる否定的な行為についても責任を負いません。
さらに、意地悪な文字列のビッグリストは、あなたのサービスに対する正式なセキュリティ/ペネトレーションテストの完全な代替手段ではありません。
意地悪な文字列のビッグリストのさまざまな実装が、さまざまなパッケージマネージャーに登場しています。これらは外部の関係者によって維持されていますが、ここで見つけることができます:
他のものをリストに追加するには、PRを開いてください。
Max Woolf (@minimaxir)
MIT