はっきりさせておきますが、私は URL (ページ、クエリ、またはその他の場所ではなく) で発生する可能性があるセキュリティ侵害についてのみ話しているのです。
問題は、フォームで「GET」を使用しても山かっこがエンコードされないことに気付いたことです。
C#.Net では、使用時に URL に山かっこを使用することは許可されないため、Request.QueryString
使用せざるをRequest.Unvalidated
得ませんが、URL 内の山かっこだけがセキュリティ リスクである場合 (つまり、かっこなどの他の特殊文字、アポストロフィ、引用符などは適切にエンコードされています)。
このサイト: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet JavaScript は URL から直接実行できることを読みましたが、成功したことは一度もありませんが、そうする必要があります。送信ボタンが必要な場合は事前に確認してください(もちろん、この方法ではそのタイプはありません)、独自のJavascriptを指し、自分でエンコードしてから、JavaScriptを使用してそこからフォームを適切に送信します、または、検証されていないデータを要求して先に進む必要がある場合。
通常、私は最も安全であると保証できるルートをたどりますが、単純な検索フォームを送信するためだけにユーザーに javascript を強制することは、良い習慣ではないようです。