1

SQLインジェクションについて。

現在、私は自分のウェブサイトに対して次のことを行っています。

  1. mysql_real_escape_string() を使用してクエリの (任意の) パラメータをサニタイズします。
  2. 整数データは intval() になります。
  3. すべての特権を持つユーザーでクエリを実行します。

質問 1: SQL インジェクションだけを防ぐことはできますか?

また、次のことを考えています。

すべての特権ユーザーでクエリを使用する代わりに、更新、削除、選択、ドロップなどのタスクごとにユーザーを作成したいと考えています。

クエリを実行するときに、使用するユーザーを次のように選択できます

$database->selectUser('SELECT')->runQuery('query');

質問 2: これはセキュリティに役立ちますか? やる価値はありますか?

4

1 に答える 1

-1

質問 1: 一般に、mysql_real_escape_string は、ユーザーに対して試行される基本的な SQL インジェクションを停止しますが、例外があります。この質問を参照してください。

すべてのコードを Mysqli または PDO に切り替える必要があります。

質問 2: それは本当にセキュリティに役立ちません。データベースで奇妙なことが起こっているのを目にし始め、ハッキングされたと思ったとしましょう...しかし、それはどのユーザーですか? パスワードが解読されたと思われる場合は、すべてのパスワードを確認して変更する必要があります。

それに加えて、基本的にすべてのアカウントとの新しい接続を定義する必要があります....

マスター アカウントを 1 つ作成し、適切なパスワードを設定します。奇妙なことが起こり始めた場合、変更するパスワードは 1 つだけです。

于 2013-01-13T01:02:45.733 に答える