所以我正在研究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));
?>
答案 0 :(得分:2)
您不必担心数据库中的内容。一切(安全方面)都由PDO处理。
但请记住,如果您稍后在网站上使用这些数据,它可以包含javascript(XSS注入)。因此,在将数据输入数据库之前,请始终过滤用户数据,将整数转换为int,过滤用户上传的html等,以获得最安全的方法。