gpt4 book ai didi

php - 使用 PDO 防止 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-11-30 00:34:16 24 4
gpt4 key购买 nike

我需要确保我的 SQL 查询 100% 安全。

如果我使用PDO命名占位符,是否有人可以实现SQL注入(inject)?

关于文档,使用PDO,先发送查询,然后发送值,这基本上意味着不可能进行注入(inject),对吗?

<?php
try {
$DBH = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'root', '123456789');
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch (PDOException $e) {
echo $e->getMessage();
}

$data = array(
'email' => $_POST['email'],
'password' => md5($_POST['password']),
'name' => $_POST['name']'
);

$STH = $DBH->prepare("INSERT INTO members (email, password, name) values (:email, :password, :name)");
$STH->execute($data);
?>

另外,使用root进行数据库授权安全吗?

最佳答案

是的,您对 PDO 的理解是正确的 - 数据会自动清理。

至于使用 root,我将创建一个具有尽可能最小权限的用户(读/写一个数据库)。您可能没有遇到安全问题,但如果遇到安全问题,您可以通过使用权限限制访问来防止更多问题。

关于php - 使用 PDO 防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298299/

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