I read that you do not need to validate or sanitize user's inputを理解する。プリペアドステートメントを使用する場合は、準備済みステートメントのユーザーデータの妥当性を理解するために
しかし、これは次の例で私には分かりません。
ユーザーが電子メールアドレスを指定します。
私は通常、この
検証コード
// to validate data
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
header("Location: index.php");
die("Wrong email-address");
}
を実行する文がなくて
コードを次のように我々は、我々が準備された文を使用している場合、データを検証する必要がないと言う
検証コード
// to get email-address nad passhash from the db
$result = pg_prepare($dbconn, "query2", 'SELECT email, passhash_md5
FROM users WHERE email = $1
AND passhash_md5 = $2;');
$result = pg_execute($dbconn, "query2", array($_POST['email'], $_POST['password']));
if(!$result) {
echo "An error occurred";
exit;
}
pg_prepare
とpg_execute
を使用しているため、検証コードが必要かどうかはわかりません。
プリペアドステートメントを使用する場合は、ユーザーの入力の検証とサニタイズを検討する必要がありますか?
ありがとうございました! –