1

複数行のテキスト ボックスを持つ内部アプリケーション (ネットワークの外部からアクセスできない) があります。ユーザー (同僚) は、Outlook または MS Word から、電子メール アドレスを含むこのテキスト ボックスにテキストをコピー/貼り付けすることが知られています。その場合、次のエラーが発生します。

潜在的に危険な Request.Form 値がクライアントから検出されました (ctl00$ContentPlaceHolder1$txtIssueDesc="... Name < email@domain...")。

MS Visual Studio 2008 で VB.NET v3.5 を使用しています。

エラーが発生する前に < > の間にあるものを取り除いて、データベースに入れ、後で問題なく編集できるようにする方法はありますか?

4

2 に答える 2

2

次のことを組み合わせて実行できます。

  1. この回答を見て、そのエラーを抑制してください。

  2. クライアント側で正規表現を使用して、< と > およびその間のコンテンツを取り除きます。これを行うには、送信ボタンに onclick イベントを追加して、サーバーに送信する前に正規表現の置換を実行します。

どちらの場合でも、サーバー側で正規表現を実行して、データベースに保存する前に入力を検証し、同様に出力を HTML エンコードする必要があります。

于 2013-10-22T20:07:28.873 に答える
0

元の質問とは直接関係ありません。

ASP.Net Ajax FilteredTextBoxの使用を検討することをお勧めします。

ユーザーが何かをテキストボックスに渡すとすぐに、無効な文字を取り除きます。有効な文字と無効な文字を設定することもできます。

たとえば、次のコードでは、ユーザーは _.@ 以外の特殊文字を入力できません。

<ajaxToolkit:FilteredTextBoxExtender 
   ID="UsernameFilteredTextBoxExtender" 
   runat="server" 
   TargetControlID="UsernameTextBox"
   FilterType="Numbers,UppercaseLetters,LowercaseLetters,Custom"  
   ValidChars="_.@" />
于 2013-10-22T20:23:28.610 に答える