2012-01-08 21 views
0

私の顧客のサイトの1つでは、私は大きなセキュリティ上の問題を発見したと思います。 検索ボックスにセミコロンを入力したときに、スクリプトがSQLエラーを投げたことがわかりました。クエリがデータベース上で実行され '+AND+product_description.description+LIKE+'%Computers%私のサイトはSQLインジェクションの脆弱性があります。

:だから私は、検索ボックスに以下のSQLコマンドを入力

...クエリ実行遊び始めました!

ハッカーがクエリの選択、挿入、削除を実行することに危害を加える可能性はありますか?私のクエリが実行されるという事実に基づいて、私はほとんどそれが害を及ぼすことが可能であるべきだと確信しています...そうですか?

+7

これからは "データベース"と呼ぶべきかもしれません。 .. –

+0

@Eugen:これは私が読んだ最高のコメントの一つです:D –

+0

@NiklasBaumstarkありがとう、ありがたいです! –

答えて

2

はい、そうです。そのような方法では、入力を常にサニタイズし、直接使用しないでください。あるいは、SQLインジェクション攻撃によって遅かれ早かれ侵害されます。

1

はい、あなたは正しいです。このコードはSQLインジェクション攻撃のために公開されています。

1

これは間違いなくSQLインジェクションの一形態であり、あなたが心配しているのは正しいです。

しかし、それだけでは、予期しない方法でクエリパラメータを変更する以外のことができるかどうかを判断するには不十分です。たとえば、元のクエリにリストされていないテーブルからデータを取得するためにクエリを変更することができますが、これは十分に悪い可能性があります。

SQLクエリを作成する際に文字列連結を使用するのではなく、指定されたプレースホルダをユーザーが選択したデータ値で置き換えることを許可する "prepared statements"を使用することを強くお勧めします。データベースに渡す前に値を確認するのが賢明かもしれません。

0

あなたのサイトはSQLインジェクション攻撃に対して開放されています。最初に私がお勧めする短期的なものは、読み取り権のみを持つユーザーIDを作成し、このIDをすべてのクエリに使用することです。ハッカーはデータベースからデータを引き出すことはできますが、行や表を更新または削除するのは簡単ではありません。

+0

こんにちは、みなさんにお手伝いをしていただきたいと思います。私たちは現在、開発者を雇うことを望んでおり、私はこのアプリケーションコードを自分で混乱させたくありません。プログラマーが見つかるまで、このhtaccesソリューションは防衛の第一線になるでしょうか?私に一時的な解決策として良い見て、または私は間違っていますか? http://nzflew.blogspot.com/2010/03/htaccess-file-to-help-prevent-sql.html – quokka

+0

書かれたAPPは何ですか?マイクロソフトの技術ならば、接続情報は設定ファイルに保存される可能性が高いので、コードに触れることなく読み取り専用接続を使用するように更新することができます。web.configまたはglobal.asaを探します。あなたのサイトが何を書いているのか分かっているなら、ここにいる人々は接続情報を見つけるのに役立つでしょう – Sparky

+0

こんにちはSparky、それはPHPで書かれていますが、広範囲に電子商取引アプリですので、データベースに書き込みます。そのため、経験豊かなプログラマーがコードを詳しく見るまでhtaccessのようなソリューションを探しています。私が言及したhtaccessの解決策は、防衛の一時的な第一線として私には大丈夫と思われる。すべての有害な要求をブロックするようです。 l何か不足していますか?これに関するいかなる考えも歓迎され、高く評価されています! – quokka

関連する問題