- PR -

validateRequest="false" について

1
投稿者投稿内容
手探り
常連さん
会議室デビュー日: 2006/10/20
投稿数: 24
投稿日時: 2008-07-30 18:17
お世話になります。手探りです。

開発実行環境
XP + IIS 5.1 + VS2005

本番実行環境
2003Server + IIS 6.0

上記の2環境があります。

テキストボックスなどの入力項目に危険性のある値のリストと照合して、
すべての入力データをチェックする為の設定「validateRequest="true"」
というものがデフォルトで設定されあると思います。

この設定を、外したいということで「validateRequest="false"」にしたらいいと
思います。この設定方法には
@マシン構成ファイル (Machine.config)
Aアプリケーションの構成ファイル (Web.config)
Bページでの属性設定
3つの方法があると思います。

今現在、開発実行環境(XPマシン)では@、A、Bいずれの設定方法を用いても
入力チェックが外れるようになっています。
ですが、本番実行環境(2003Server)では、@、Aの方法を使用しても
入力チェックが外れず、Bの方法のみ入力チェックが外れる状況となっています。

OSの違いもしくは、IISのバージョン違いによって、設定の有効方法が変わるといった
事がありえるのでしょうか?IISの違いで発生するのか、OSの違いで発生するのか
または、「validateRequest」の設定を「Machine.config」「Web.config」内の設定
で有効にする為の設定があるのか調べたのですが、見つける事ができません。

このような現象がいままで起こった事がある方はいますでしょうか?
もし、何かしらの情報をお持ちの方がいましたら、お教え願えないでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-08-01 22:41
どうも、どこかの時点で、アプリケーションやマシン単位の設定はなくなっているようですね。。。

MSDN ライブラリのASP.NET 構成設定<microsoft.com>
 この下に見つからない。

MSDN ライブラリに絞り込んで、validaterequest を検索<microsoft.com>
 Page 関係のところにしかない。


 この変更は、セキュリティの見地から、歓迎されるものだと思います。
デフォルトの「する」に任せているアプリケーションが、コンピュータ設定によって「しない」にされると、セキュリティ ホールになりますから。
力関係が、「マシン設定 < アプリケーション設定 < ページ設定」として存在するなら、各ページを「する」のデフォルトのままマシン設定で「しない」に変えることはできません。逆もしかり。そうであるなら、各ページにだけ設定があるでかまわないと思います。
手探り
常連さん
会議室デビュー日: 2006/10/20
投稿数: 24
投稿日時: 2008-08-04 09:46
Jittaさん返信ありがとうございます。

リンクして頂いた先を見たところ、ご指摘のように「validateRequest」の記述は
Page 関係の所しか存在しませんね。変更があったようですね。

実際問題、Jittaさんがおっしゃった様にセキュリティ面から考えると
ページ単位がデフォルトで設定されている場合、構成設定の変更でコロコロ変わる
のは危ういですね。

勉強になりました。ありがとうございます。
「validateRequest」に関しては、もう少し検討した上でいれるかいれないか対応を
行っていきます。
1

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