「潜在的に危険なRequest.Form値が検出されました...」というエラーでアプリケーションがクラッシュするのを防ぐため、ページ検証をオフにしました。私はこれを再訪し、正しく解決したい。テキスト入力の自動エンコードの戦略ですか?
これには良い戦略がありますか?人々が '<'と '>'を入力している場合は、データを保存する唯一の方法はJavacriptでエンコードすることだと思います。私はコードビハインドでそれをキャッチしようとしましたが、それは遅すぎます。私はテキストボックスを継承し、クライアントスクリプトで入力を自動エンコード/デコードすることを考えています。私はまた、私のデータベースに既に保存されているすべての山括弧について考える必要があります。
これに関するご提案またはご経験がありますか?
ライフサイクルのどの部分でこれを行うのですか?私がどこで試しても、私は "潜在的に危険なもの"を投げます。私はクライアントサイドがこれを処理する唯一の方法だと感じています( – TruMan1
)これは、あなたのページ検証をオフにしたときにのみ行うことができます。 @ Bumble Beeは、実際にはオフにしておくことを提案し、Server.HtmlEncodeを使用してユーザーから取得した値をチェックします。 – Gidon
入力をエンコードすることは、私にとって悪いアーキテクチャのように見えます。出力をエンコードする必要があります。いくつかのビューエンジン(Razorのような)はこれを自動的に行います。 – CodesInChaos