最近、エンコーディングが長すぎると、適切に検証されていない場合にセキュリティリスクが発生することを知りました。前述の投稿の回答から:
たとえば、文字<は通常バイト0x3Cとして表されますが、長すぎるUTF-8シーケンス0xC0 0xBC(またはさらに冗長な3または4バイトシーケンス)を使用して表すこともできます。
と:
この入力を受け取り、Unicodeを無視するバイトベースのツールで処理すると、そのツールで使用されている文字処理ステップが回避される可能性があります。
つまり、htmlspecialchars
長すぎるエンコーディングを使用する文字列で使用する場合でも、出力にタグが含まれる可能性があります。また、SQLインジェクションにも使用できる同様の文字("
またはなど)を投稿できると思います。;
おそらく私ですが、これはセキュリティ上のリスクであり、比較的少数の人が考慮し、知っていることさえあると思います。私は何年もコーディングしてきましたが、これを見つけたのは今だけです。
とにかく、私の質問は、長すぎるエンコーディングでデータを送信するためにどのツールを使用できるかということです。このリスクに精通している人:Webサイトでどのようにテストを実行しますか?たくさんの長すぎる文字を自分のサイトに投稿したいのですが、どうすればよいかわかりません。
私の状況では主にPHPとMySQLを使用していますが、本当に知りたいのはテストツールなので、バックエンドの状況はそれほど重要ではないと思います。