Web アプリケーションへの入力からいくつかの一般的な XSS 攻撃を取り除く検証ライブラリを使用しています。それは正常に動作し、XSS 攻撃から保護するためにレンダリングするすべてをエスケープしています。
ライブラリには、XSS フィルタリング プロセスの一部として次の行が含まれています。
// Protect query string variables in URLs => 901119URL5918AMP18930PROTECT8198
str = str.replace(/\&([a-z\_0-9]+)\=([a-z\_0-9]+)/i, xss_hash() + '$1=$2');
xss_hash
ランダムな英数字の文字列を返します。基本的に、クエリ文字列を含む URL を受け取り、それを少しマングルします。
> xss('http://example.com?something=123&somethingElse=456&foo=bar')
'http://example.com?something=123eujdfnjsdhsomethingElse=456&foo=bar'
バグがあることに加えて (すべてではなく 1 つのパラメーターのみを「保護」します)、全体がバグのように思えます。
私の質問は次のとおりです。この種の代替品は、どのような種類の攻撃ベクトルから保護されていますか?
本当に何もしていない場合は、プロジェクトにパッチを提出して完全に削除したいと思います。ライブラリのユーザーを合法的に保護しているのであれば、既存のバグを修正するパッチを提出したいと思います。