• 締切済み

IIS7.0におけるSQLインジェクション対抗策について教えてください

IIS7.0におけるSQLインジェクション対抗策について教えてください 1ヶ月ほど前からデータベースに悪質なスクリプトが書き込まれるようになりました。 そこで、DBユーザー名もパスワードも変更しましたがそれでも書き込まれるので、データベースにUPDATEもしくはinsertしているファイルにエスケープ処理をしようとしていますが、ファイル数が多いので 一旦、それらのファイルに外部からアクセスできないようにIISで設定してしまいました。 ほとんどすべてのIPアドレスからのアクセスを拒否するようにマスクは0.0.0.0に設定しています。 アクセスしようとすると403エラーになります。 ところがそれでもスクリプトが書き込まれるのです。 こういう攻撃って可能なのでしょうか? ファイルアクセス不可にも関わらず、テーブルに書き込みされるということは、ファイルにエスケイプ処理を施しても無駄だと思い、 とりあえずDBのすべてのユーザーにテーブル」への挿入・更新権限を拒否しました。 これでやっと書き込みがなくなりましたが、この設定ではWEB上から何らかのデータ操作をしようとする毎にWEBサーバーにリモートデスクトップ等でアクセスして、SQLサーバーのユーザーに権限付与しなければならず、WEBアプリケーションとしての意味がなくなります。 対応策はあるのでしょうか 大変困っています。 サーバーへの解放ポートはport80のみで、当然、SQLポート1433どは閉じています

みんなの回答

  • inoue_kou
  • ベストアンサー率57% (27/47)
回答No.2

SQLインジェクションならwebサーバーのログに痕跡が残っていませんか? webサーバー経由でないとすれば一般ユーザーのアクセス権を取れれているかもしれませんねえ。 いずれにしろシステムのセキュリティに問題がありますので、一旦外部と切り離して見直された方がいいと思います。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

SQLインジェクション対策の大半は値を直接SQL文に展開しないことです。

参考URL:
http://www.atmarkit.co.jp/fsecurity/column/ueno/42.html
avectoi
質問者

補足

そもそもファイルアクセス不能にしている状況で「値を直接SQL文に展開しない」という対策が有効なのでしょうか?

関連するQ&A