1

可能的重复:
PDO 准备好的语句有多安全

所以我正在研究 PDO 来替换我的 php.ini 中的所有 mysql 查询。我这样做的主要原因是为了安全和易于编码。不过,我只是想知道,就安全性而言。一旦我完成替换任何 mysql 查询调用以及我使用 PDO 从用户那里捕获的任何数据,我应该考虑在查询的准备和执行之间放置什么?或者那会照顾安全。我想我只是不明白 PDO 的安全性在哪里。这是我的一些代码示例,用于获取用户输入然后将其放入数据库中。这有什么问题吗?或者我可以做的改进?

<?php
session_start();
include("dbgear.php");

$var1 = $_POST['stuff1'];
$var2 = $_POST['stuff2'];
$var3 = $_POST['stuff3'];
$var4 = $_POST['stuff4'];
$var5 = $_SESSION['stuff5'];
$vardate = date("M d, Y h:i A");


$info = "INSERT INTO comments SET     name=:user,class=:class,comment=:commentarea,date=:date,detector=:detector";


$send = $connect->prepare($info);
$send->execute(array(':user'=>$var1,':class'=>$var2,':commentarea'=>$var3,':date'=>$var4,':detector'=>$var5));

?>
4

1 回答 1

2

您不必担心放入数据库中的内容。一切(安全方面)都由 PDO 处理。

但请记住,如果您稍后在您的网站上使用这些数据,它可能包含 javascript(XSS 注入)。因此,在您将用户数据输入数据库之前,请始终过滤您的用户数据、将整数转换为 int、过滤用户上传的 html 等,以获得最安全的方法。

于 2012-11-12T23:32:36.330 回答