- PR -

HTMLタグを検索条件に入れるとクロスサイト スクリプティングエラーが表示される

1
投稿者投稿内容
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2004-02-13 11:39
検索条件にHTMLタグを入れた場合に(例<tr>)にクロスサイト スクリプティングエラーが表示されます。
エラーメッセージで出るものには解除方法としか書いていないので、HTMLタグを入力した場合のエラー回避の方法を教えていただきたいと思います。
自分なりに考えたのは
1.バリデイトチェックでHTMLタグに関するものが入力されてあれば何らかの表示をする
2.とりあえずそのままサーバへデータを流し、検索結果0件のようにしてしまう
と二つ考えました。
しかし、.netの クロスサイト スクリプティングエラーはサーバ側にデータを送った段階で表示されるので、ブラウザ側で何らかの処理が必要と判断しました。

で、ブラウザ側でHTMLタグのチェックをする場合にはどうのようにすればよいうかとうことで質問させて頂きました。
ひとつは、Javascriptで書く方法ですが、この場合IF文などで条件分岐を書く必要があるのでしょうか。また.NETにはバリデイトチェックがありますが、HTML対応のチェックなど機能としてついているのでしょうか?
参考になる情報を教えていただければと思います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-13 11:59
 これも、すでに2つ3つあるんですね。

・PageディレクティブにvalidateRequest="false"
・入力されるおそれのあるinput要素に対してRegularExpressionValidator、
 または、CustomValidatorを配置する
・クライアントおよびサーバの両方でチェックする
・検査する文字列は、正規表現で'<[a-zA-Z]'←要素が拡張されることもあるため
・サーバで、Page.IsValidがfalseの場合は、入力を表示しない
[全てを実装]
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2004-02-13 14:36
Jittaさん書込みありがとうございます。確かに調べてみたら幾つかありました。もう少し調べてから書込みします。反省です。

しかしながら疑問に思うことがあります。
validateRequest="false" にするということは、もともとあった、タグ関連のチェックを使えなくするってことですよね。
使えなくするから、RegularExpressionValidatorなりCustomValidatorを使って、検証を行う。クライアント、サーバ側でもチェックをするということ。
なおかつPage.IsValidがfalseの場合は、エラー画面を出力しないということですよね。

結構めんどくさいなというのが実感です。これらの処理も最初から.NETに用意してあれば便利ですよね。

ありがとうございます。早速検証して使用してみます
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-13 15:27
引用:

たけくんさんの書き込み (2004-02-13 14:36) より:

確かに調べてみたら幾つかありました。もう少し調べてから書込みします。


 まぁ、スレッドが一番上に来るから、それはそれで便利なんですけどね


引用:

validateRequest="false" にするということは、もともとあった、タグ関連のチェックを使えなくするってことですよね。
(略)


 .NET F/W 1.0では、なかったんですよ。1.1で、validateRequestが追加されました。
#HttpRequestValidationExceptionクラスの説明参照

 で、.NET F/Wとしては、“どのように表示して良いかわからない”から、エラーページを出しているのだと思います。
 もしくは、アプリケーションレベルでHttpRequestValidationExceptionをキャッチして、何らかのページを表示させても良いかも。

 サーバとクライアント両方でチェックしているのは、私がちょっと特殊な処理をしているためで、submit前に必ずクライアントでチェックされるなら、サーバ側はなくてもかまわないと思います。
1

スキルアップ/キャリアアップ(JOB@IT)