- - PR -
[ASP.NET] validateRequestについての疑問。
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-10-09 11:45
こんにちわ。
VB.NETを使用してASP.NETの開発をしています。 現在、TextBoxの入力値を受け取る部分のテストでエラーが出てしまいました。 TextBoxには<>で囲まれた適当な半角英数文字を入力したのですが、どうやらタグと認識されたようです。 そこでいろいろ調べたところ、validateRequestなるものを発見し、これをvalidateRequest = Falseにすることでエラーを回避することはできました。 ここで疑問なのですが、デフォルト値がTrueで設定されているということはMSがそれを推奨していることだと思うのですが、実際はこれをFalseにしないときちんと動作しません。 こういったプロパティをデフォルト値以外のものに変更して使用すると、何かしらのメリットやデメリットが考えられると思うのですが、自分には思いつかずこのまま使用してもいいのか迷っています。 validateRequestをデフォルト値のTrueのままでも、このエラーを回避する方法があるのであるのでしょうか? たくさんの方のご意見を伺ってみたいと思っております。 よろしくお願いします。 |
|
投稿日時: 2003-10-09 11:50
こんにちは。
TextBoxに入力した "<>"に関してなのですが、 どのような処理を行う場合にどのようなエラーとなったのでしょうか。 ※調べる環境が現在手元に無く、質問に質問するという形になりました。申し訳無いです。 |
|
投稿日時: 2003-10-09 12:07
Crimeさんこんにちわ。
単純にTextBoxに入力したものをデータに登録しようとしたら発生します。 掲示板を作ってるとでも思ってくださればわかりやすいかと思います。 で、掲示板の内容にタグを打ち込むとエラーとなるわけですが。 どうやらTextBoxのPostbackが返される前にこのエラーが発生するらしいです。 (WEB検索中に見つけたものなので不確かなものですが・・・) |
|
投稿日時: 2003-10-09 13:02
すいません。状況,症状の把握が完全にできていないのかもしれませんが、
私の作成したものでは現象が再現しませんでした。 ※以下、直接は関係無いかもしれません。 掲示板の内容というのはHTMLタグを有効にされるのでしょうか。 されないので有れば表示上の文字列との扱いになりますので、 "<" ">" 等は ">" "<"と置換されれば結構だと思います。 またTextBox等に再表示する場合は逆置換して貰えば結構です。 |
|
投稿日時: 2003-10-09 18:54
ええと、ここの過去ログにもありました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5163&forum=7 これと同じエラーが発生したのですが、エラーは解消されました。 自分が疑問に思ったのは、「デフォルトで用意されているものに手を加えるということは、なんらかのデメリットを含む危険性があるのではないだろうか。」という疑問です。 これを使用することのメリット・デメリットについては探し当てることができずに気になっていました。 |
|
投稿日時: 2003-10-09 19:42
入力の妥当性チェックということであれば。。。
もし、入力されたものをそのまま次のページに表示するようなことをしていたとします。そのとき、<>で囲まれたところは、どのような動きをしますか?その中に<OBJECT>などと書かれていたら、どうなりますか? #<script language="javascrpt">・・・</script>の方がわかりやすいか 例えば、「入力の確認画面」というのは、よくある話ですよね。 そういうことを説明したページがあったのですが、忘れた。たぶん、この雑誌かな? 2001年12月12日発売 Web開発者とネットワーク・エンジニアのための 最新セキュリティ対策ガイド ISBN4-8222-2958-0 http://itpro.nikkeibp.co.jp/security2002/ (会員でないと見られないかもしれません。そのときは失礼) そのほか、「ユーザ名とパスワード」を入力するところでも、シングルクォーテーションやセミコロン、/*や--を入れられたらどうなるか・・・(Oracle想定)1度は検証しておくべきことです。 [ メッセージ編集済み 編集者: Jitta 編集日時 2003-10-09 19:49 ] |
|
投稿日時: 2003-10-10 10:14
おはようございます。
Jittaさんありがとうございます。 入力の妥当性・・・。そこまで難しくは考えてなかったです^^; 単純にエラー回避策にvalidateRequest = Trueというのを見かけて それを実践したあとで、デフォルトをいじってしまってよいものか?という疑問にかられた次第です。 現状ではこれをいじったところでデメリットになるような要素は見つかりませんでしたので、とりあえずのところこれでエラーを回避をしていこうかと思います。 結論としても、現状ではデメリットは見つからない。メリットとしてHttpValidation...のエラーを回避できる。といったことでしょうか。 |
|
投稿日時: 2003-10-10 10:53
いわゆる「セキュリティーホール」の話をしているので、
「イントラネットでしか使用せず、使用者は皆良心的である。または、HTMLタグを知っている人間はいない、ましてJavaScriptをかける人間は皆無である」 「サーバサイドでチェックしている」 「文字数制限をしているので、危険なコードを書き込めるだけの入力はできない」 というのであれば、かまわないと思います。 |