は、sql攻撃に対して十分なmysqliの「mysqli_real_escape_string」ですか?ただし、URI2Xで示されているように、この尺度は不十分です。注射攻撃。たとえば、次のコードは依然として脆弱である可能性があります。 $ query = "select * from users where email = '"。 $電子メール。 "'";
攻撃者は、「email'@example.com」などのメールアドレスを入力してクエリを悪用し、逃げた入力後にSQLステートメントを追加します。 「mysqli_real_escape_string()」の代わりに、作成されたステートメント
の場合、SQL注入を防ぐ最も効果的な方法は、準備されたステートメントを採用することです。準備されたステートメントは、データの汚染を防止し、クエリ文字列からデータを分離します。 $ stmt-> bind_param( 'ss'、$ email、$ psw); $ email = mysqli_real_escape_string($ db_con、$ _post ['email']); $ psw = mysqli_real_escape_string($ db_con、$ _post ['psw']); $ stmt-> execute();
strictキャラクターwhitelisting
$email = mysqli_real_escape_string($db_con, $_POST['email']); $query = "SELECT * FROM users WHERE email = '" . $email . "'";
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3