- - PR -
ASP.NETにおけるXSS、SQLインジェクション対策
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-08 14:00
いつもお世話になっております。
ASP.NET&Oracleで開発しております。 今、クロスサイトスクリプティング(XSS)とSQLインジェクションの対策について調査中なのですが、Webシステムの初心者の為、今ひとつ解らなくて困っています。 ASP.NETを使用した際の対応方法について詳しい方がおりましたら、ご伝授願います。 以上、よろしくお願いします。 | ||||||||
|
投稿日時: 2006-02-08 14:28
とりあえずSQLインジェクションはSQLを発行する際に
SqlParamaterを使用するように実装すればOKかと。 | ||||||||
|
投稿日時: 2006-02-08 14:44
説明不足でしたが、
現在、データのSELECTは「SELECT * FROM TABLE WHERE CODE=" & 1」のような形でSQL文を作成し、FillメソッドでDateSetに取得し表示してます。更新の際はDataRowに値をセットしUPDATEメソッドを実行、削除の際はDataRowを削除しUPDATEメソッドを実行しています。それでもSqlParamaterを使用した方が良いのでしょうか? | ||||||||
|
投稿日時: 2006-02-08 14:48
追記:
Where句の値が画面から入力される事はありません。 | ||||||||
|
投稿日時: 2006-02-08 15:03
デメリットもないし、使っても問題ないのでは?パフォーマンスも良いみたいですし。 (生の SQL をログに書き出したいという要件でパレメタライズドクエリを使いたくない、というのをよく聞きますけども) タイプセーフな書き方もできますしね。(SqlParamater に型やサイズを設定する)
「現時点では」の文が付きますよね。ちょっとした変更でユーザーから入力されるようになるかもしれませんよ。 このクエリは画面から入力されないから、パラメタライズドクエリにしない。 このクエリは画面から入植されるから、パラメタライズドクエリにする。 とか面倒ですよね。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-02-08 16:57
開発も結構進んでて、今更パラメタライズドクエリにするのは無理です。
今の作りで何とかSQLインジェクションの対策を行いたく思っています。 良い方法ありませんか? | ||||||||
|
投稿日時: 2006-02-08 17:12
ありません。 # Like な検索とかある場合は特にマズー。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-02-08 17:15
「今の作りで何とかSQLインジェクションの対策を行いたく」というのは、コードを触らないって意味でしょうか。
一体何の心配をなさっているのでしょうか。 画面から何かを入力される事はない、と断言なさっているのに、XSS や SQL インジェクションの心配をしているのでしょうか。 なるべく少ない修正で何か対策案があるか考えてみます。(現状の私で出せる案は出しました) #「出しました」じゃない。「既に出てます」^^; _________________ 囚人のジレンマな日々 [ メッセージ編集済み 編集者: 囚人 編集日時 2006-02-08 17:17 ] |