質問: "select * from table where login='$login' and password='$password'"; 私は、そのようなコードはまだ危険であり、mysql_real_escape_string()関数を使用してもハッキングする可能性があると多くの人が私に言うのを聞いたことがあります。しかし、私はどんな悪用も考えられませんか?このような古典的な注射:aaa' or 1=1 -- 動作しない。上記のphpコードを通過する可能性のある注入を知っていますか?
回答: 実は、それを通過できるものは何もありません、%ワイルドカード以外に。攻撃者としてlikeステートメントを使用していて、それを除外しない場合はログインとして%だけを入力することができ、ユーザーのパスワードをブルートフォースする必要があります。データはそのようにクエリ自体に干渉することができないため、100%安全にするためにプリペアドステートメントを使用することをお勧めします。しかし、そのような単純なクエリでは、おそらく$login = preg_replace('/[^a-za-z0-9_]/', '', $login);のようなことをするほうが効率的でしょう。