-1

インターネットにはエスケープ文字に関する情報があふれていることは知っていますが、具体的に必要なものが見つかりません。データベースから在庫情報を照会していますが、在庫の説明には、エスケープが必要なさまざまな「危険な」文字が含まれている可能性があります。データ リーダーをループしている間に、潜在的な問題のある文字のすべてのインスタンスを、その文字のエスケープされたバージョンに置き換える必要があります。Regex.Escape を見てきましたが、引用符などのいくつかの重要な文字が除外されています。Regex.Replaceもありますが、置換する文字がいくつでもある場合、置換文字列がどうあるべきかをどのように伝えることができますか? 次のことをどのように処理しますか。

SQL クエリは、インベントリの説明に対して次の結果セットを返します。

  • 3/4"ワイヤー
  • 5' ロープ @StoreX
  • 1 1\4" 六角ナット

**説明自体にもっと深い問題があることは認識していますが、これが私が扱わなければならないデータであると仮定すると...

SqlDataReader dr = command.ExecuteReader()
while(dr.Read())
 {
    string partDescription = dr["Description"].ToString();  //Here is where I need to escape any characters posing a potential issue
 }
4

2 に答える 2

1

Web Protection Library (以前の AntiXSS)について知っていますか? これには、多くのエスケープ (HTML、Javascript、XML) が含まれています。

于 2012-07-12T14:12:10.750 に答える
1

これが (Web 上で) 表示のみを目的としている場合は、表示する前に値を Html エンコードする必要があります。これは HttpUtility で行うことができます

HttpUtility.HtmlEncode("<script>alert('yo');</script>");
于 2012-07-12T14:15:52.573 に答える