3

Doctrine 会自动阻止 SQL 注入吗?
下面的代码安全吗?

$user = new Model_User();
$user->name = $_POST['username'];
$user->save();
4

2 回答 2

4

就SQL注入而言,我认为不会有问题。但是您可能还想确保用户名格式正确(例如<script>//do somthing bad</script>,当您在网站上的某处输出该用户名时,可能会执行该脚本)

于 2010-12-22T11:04:24.973 回答
3

只要您使用绑定参数(Doctrine 将在后台使用这些参数,因此您的示例很好),您就可以避免使用 Doctrine(以及任何其他基于 PDO 的数据库库)进行 SQL 注入,但您永远不应该使用来自客户的输入,而无需先对其进行清理。看看 PHP 的过滤器库 - 特别是清理示例。在您的情况下,您至少需要使用 FILTER_SANITIZE_STRING “剥离标签,可选择剥离或编码特殊字符。”来验证名称是否为字符串。

于 2010-12-22T11:22:11.407 回答