この質問に似ていますが、どのキャラクターがエラーを発生させるか、または引き起こさないかについてはあまり気にしません。現在の文字列が上記のエラーメッセージを表示するかどうかを確認するために、どのメソッドを呼び出すことができるかについてもっと知りたいです。
少し背景を説明するために、ユーザーがパスワードを忘れてリセットが必要になったときにランダムなパスワードを作成しています。残念ながら、ランダムパスワードジェネレータは「誤って」&#
それを含むものを最近作成しました。これにより、ユーザーがログインしようとしたときにページが壊れました。
このトピックに関する多くの投稿で言及されているように、ValidateRequest=false
(または<httpRuntime requestValidationMode="2.0" />
.NET 4.0の場合)これらのエクスプロイトの.NETチェックをオフにするために使用できますが、私がそもそも文字列を作成するもの。<
また、ランダムジェネレーターに不完全なリスト( 、など)で再ランダム化するように指示するだけでは&#
、最もクリーンなソリューションとは思えないため、.NETが使用しているのと同じ方法でチェックしたいと思います。
問題となっているエクスプロイトと、それらを防ぐために何が行われているのかについてのMicrosoftの説明はここにあります。
この男はReflectorを掘り下げて呼び出された関数を見つけることについて話しますIsDangerousString
が、私はそれを使用するためにこの関数を見つけることができません。また、彼は.NET 1.1について言及しており、私は.NET3.5を使用しています。