なぜこのようなことが起こっているのか理解してください。私のWebアプリケーションは、データベースからアポストロフィを含むテキストを取得して、Webフォームのラベルを使用して表示します。ただし、Webフォームを送信すると、潜在的に危険なエラーが発生しています。C#潜在的に危険なエラー、フォーム送信中のアポストロフィ
私はグーグルでてきた、と私はこの問題の原因の流れを理解することはできませんLabel.Text
にそれを設定する前に、私は値上)(HttpUtility.HtmlDecodeを使用することで、このエラーを解決することができます。
私は「'」
しかし、私は理解できないものです「」のような潜在的なHTMLタグを提出する際に潜在的に危険なエラーが発生し、それはまたのようないくつかのエンコードされた文字をフィルタリングすることを理解:
文字列の値は、Webフォームに表示されるときに自動的にHTMLエンコードされますか?私のデータベースの値はHTMLでエンコードされていないからです。
データベースの値が最初にエンコードされていないと、それを解読するとエラーが解決するのはなぜですか?その場合、データベースからすべての値をデコードする必要がありますか?
あなたが前に投稿した質問を読んだけど、まだ答えられていない質問があります。私は自分の仕事の性質上、バリデーションを無効にすることはできません。私が理解できないことは、このプロセスのライフサイクルです。特にHTMLのエンコーディングとデコードの部分です。 Webフォームでレンダリングするときにテキストが自動的にHTMLエンコードされていると想定するのは当然ですが、エラーが発生したので、&を引用しましたか? HTMLのテキストをデコードするのが私の問題を解決するのはなぜですか?問題のテキストは、データベースに保存される前にHTMLでエンコードされていませんでした。デコードする前にエンコードする必要はありませんか? – PikaManiac
@ PikaManiac私はあなたが明らかにそれをシナリオに依存するので、エンコードする必要があると言いたくありません。しかし、この特定のシナリオでは、私はあなたがテクスチャを持っているとか、誰かがこれを挿入していると仮定しているので、あなたが必要と思うと思う:「do not」、これをエンコードすると「don &?ブラウザーが理解し、「しない」と表示することができる「t」を入力してください。 このフィドルを見てくださいhttps://jsfiddle.net/b41v18dq/1/ – rjso