![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
データベースのログインユーザー名とパスワードが分からない状態でSQLインジェクション攻撃は可能でしょうか
サーバーの構成は以下の通りです
ウィンドウズ2008サーバーR2のIIS7.0+SQLサーバ2008EXPRESS
以前win2000サーバーでウェブサイトを運営中コンテンツをごっそり抜かれてしまったことがあるので,
攻撃者はソース上からテーブル構造の知っていると考えられます。
現在テーブルに対してinsert処理もしくはUPDATE処理しているファイルは中国方面あるいはアジア圏のIPアドレスからは
アクセスできないようにしており、403エラーが出るように設定していますので、ファイルに対してポストできないように
なっているはずです。
この状態でテーブルへのスクリプトの書き込みは可能なのでしょうか
現在この状態でもスクリプトが書き込まれてしまいます。
仕方ないので、データベースのすべてのログインユーザーに対して書き込み・上書き権限を除外しました。
こうしたところ書き込みはなくなりました
こうしてしまうと、商品情報などを登録するたびに、ユーザーに対して書き込み・上書き権限を与える必要があり、非常に生産性が悪い状態になってしまっています。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
IP指定でのアクセス拒否は、プロキシを経由すれば簡単に回避可能です。
また、BASIC認証はBASE64でユーザ名やパスワードがエンコードされます。
BASE64方式での認証は認証される時点でのパケットを傍受されれば、参考URLのようなアプリケーションで簡単にその中身を確認可能です。
SQLインジェクションを仕掛けるような技術力を持った攻撃者にとっては、それらのセキュリティ対策はザルと同然です。
参考URL:http://www.ahref.org/app/base64/
No.1
- 回答日時:
ご質問の内容を拝見すると、SQLインジェクションとは具体的にどのような手段で実施されるのかをご存知無いように見受けられます。
SQLインジェクションは、外部からの攻撃者が直接SQLを実行している訳ではありません。
実際に攻撃者が仕組んだスクリプトを実行しているのはWebアプリケーションを起動しているプロセスであり、攻撃者はWeb入力フォームの入力規則ルール等の穴を見つけ出してWebアプリケーション経由で任意のスクリプトを実行させるよう、入力フォームへ巧みにスクリプトを埋め込みます。
Webアプリケーションのプロセスは常にデータベースにログインしている状態ですから、当然ながら攻撃者はデータベースのユーザアカウントやパスワード等を事前に知っておく必要は全くありません。
改善すべきは権限の設定では無く、Webフォームからの入力をエスケープ文字に変換するとか、特殊文字を一切受け付けなくすると言った入力規則の厳密化が最優先の課題です。
参考URL:http://www.atmarkit.co.jp/fsecurity/column/ueno/ …
この回答への補足
ご回答ありがとうございます。
入力フォームファイル自体に対する攻撃者IPからのアクセス拒否(エラー403が出るようにするかもしくはベーシック認証をかける)してもダメなのでしょうか?
ありがりがとうございます。大変勉強になりました。
データベースへの入力フォームは、フロントエンドには一切ないWEBサイトで
ハックエンド管理画面しか存在ないのですが、
ここにもエスケープ処理しないといけないのですね。
。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- WordPress(ワードプレス) ワードプレスの管理画面でユーザー名が違うと出るのですがどこで設定したユーザー名を打てばいいのでしょう 1 2022/03/31 19:36
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- LINE simフリー端末で前回もっていた端末でline引継ぎ 2 2022/10/07 10:11
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MSDEにて作成したユーザでデー...
-
メンテナンスプランについて
-
Access mdbの権限が変わってし...
-
数字で「そ」と「り」
-
HD容量が足りなくなった場合...
-
データベースファイル(.db)を開...
-
データベースからWordpressを復...
-
データベースに配列を格納する
-
Notesの「notes.ini」内の環境...
-
MySQLからのデータ取得で日本語...
-
php xml mysql アクセスログ
-
phpMyAdminのSQL文実行エラー
-
batでsqlplusによる前月データ...
-
バッチファイルではパスワード...
-
LAMP構成について
-
php xml?mysql? アクセスログ
-
pathを指定してCSVをインポート...
-
MySQL6.0でのデータ保存場所
-
コンパクトなEXEファイルに組み...
-
あるDBから別のDBのテーブルをs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlにおけるホストのパーセン...
-
Access97でDBファイルを最適化...
-
メンテナンスプランについて
-
MySQLのエラーメッセージ(エラ...
-
ユーザー名にアンダーバーを含...
-
ERROR 1044
-
行ごとにアクセス権限
-
XAMPPのSQLの「エラー#109」とは
-
MySQL 192.168.0.1の端末から 1...
-
phpmyadminでの特権が表示方法
-
ACCESSからリンクでのレコード...
-
ASP.NETからのデータベースの作成
-
ワークフロー承認システムを作...
-
【NURO光のONUでroot権限が取れ...
-
PHP+MySQL初心者・参考サイトな...
-
phpMyAdminのログインユーザー追加
-
MSDEにて作成したユーザでデー...
-
データベースのログインユーザ...
-
FILE権限があるはずなのにSQLフ...
-
MySQLでDBが作成できない
おすすめ情報