PDO安全问题

时间:2012-11-12 23:28:22

标签: php pdo sql-injection

  

可能重复:
  how safe are PDO prepared statements

所以我正在研究PDO来替换我的php中的所有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));

?>

1 个答案:

答案 0 :(得分:2)

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

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