リクエストURLでの奇抜な文字の使用に関するScottHanselmanの投稿では、IISおよびASP.Netのセキュリティ機能を回避して、無効な文字をURLで渡すことができるようにする方法について説明しています...しかし、スタック交換は彼とは異なる方法で行っていると確信しています方法論は、サイトを厄介な攻撃やバグに対して広く開放したままにします。
StackExchangeには、次のようにエンコードされたリクエストC#
でWebサーバーに送信されるタグへのリンクがあります。GET
// C#
http://stackoverflow.com/questions/tagged/c%23
// C++
http://stackoverflow.com/questions/tagged/c%2b%2b
秘訣は...クエリ文字列の値としてではなく、リクエストパス値(ルートパラメータなど)として送信されることです...
Hanselmanの記事を見ると、RequestValidation以外のいくつかの他のセキュリティ機能をオフにすることによってのみ可能であると彼は示唆しています(後者はURLのクエリ文字列部分でエンコードされた文字を許可します)。
質問
StackExchangeはこれをどのように達成しますか?
ハンゼルマンが彼のブログで説明しているのと同じ方法で行われた場合、彼らは自分自身を守るためにどのような追加の手順を実行しますか?