Doctrine 会自动阻止 SQL 注入吗?
下面的代码安全吗?
$user = new Model_User();
$user->name = $_POST['username'];
$user->save();
Doctrine 会自动阻止 SQL 注入吗?
下面的代码安全吗?
$user = new Model_User();
$user->name = $_POST['username'];
$user->save();
就SQL注入而言,我认为不会有问题。但是您可能还想确保用户名格式正确(例如<script>//do somthing bad</script>
,当您在网站上的某处输出该用户名时,可能会执行该脚本)
只要您使用绑定参数(Doctrine 将在后台使用这些参数,因此您的示例很好),您就可以避免使用 Doctrine(以及任何其他基于 PDO 的数据库库)进行 SQL 注入,但您永远不应该使用来自客户的输入,而无需先对其进行清理。看看 PHP 的过滤器库 - 特别是清理示例。在您的情况下,您至少需要使用 FILTER_SANITIZE_STRING “剥离标签,可选择剥离或编码特殊字符。”来验证名称是否为字符串。