gpt4 book ai didi

mysql - 使用 PDO 安全地将值插入 MySQL 表

转载 作者:行者123 更新时间:2023-11-29 03:38:53 24 4
gpt4 key购买 nike

这会保护我的 INSERT 免受 SQL 注入(inject)攻击吗?我能以某种方式缩短这段代码以使其看起来更整洁吗?

$db = new PDO('mysql:host=XXXXXXXXXX;dbname=XXXXXXXXX', 'XXXXXXXXX', 'XXXXXXXXXX');

// query MySQL to verify login
$query = $db->prepare("INSERT INTO login (username,password,name,email_add,age,country) VALUES (:username,:password,:name,:email_add,:age,:country)");
$query->execute(array(
':username' => $username,
':password' => $password,
':name' => $name,
':email_add' => $email,
':age' => $age,
':country' => $country));

最佳答案

YES, PDO Extension 已经消除了所有类似的注入(inject)漏洞。由于您在之后绑定(bind)了参数,因此您的操作也是正确的。

但是,为了使查询处于最安全的状态,请在绑定(bind)变量时指定变量的数据类型。

$query = $db->prepare('INSERT INTO login (username,password,name,email_add,age,country) VALUES (:username,:password,:name,:email_add,:age,:country)');

$query->bindParam(':username', $username, PDO::PARAM_STR, 20);
// and so on
$query -> execute();

More Details

关于mysql - 使用 PDO 安全地将值插入 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17142233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com