PDO语句和XSS攻击

时间:2018-06-04 14:11:28

标签: php pdo xss

我在localhost服务器托管的其中一个页面中有一个POST参数。

$name = addslashes(trim($_POST['name']));

并在Update.php页面和

之一中使用PDO预处理语句

当我尝试使用以下数据提交字段时,它会显示导致XSS攻击的ALERT弹出窗口,因此我如何防止此攻击以使SQL注入和XSS无法正常工作。

abc"><script>alert(1);</script>

这是我使用的SQL查询 -

$query = "UPDATE table set name =? where id=?";
$stmt = $conn->prepare($query); 
$stmt->execute(array($name,$id));

谢谢

1 个答案:

答案 0 :(得分:4)

代码注入是100%上下文敏感的。它不会仅仅因为恶意用户键入“危险”字符而发生。

  • 要将内容插入数据库,请删除addslashes()。您已经在使用预准备语句将代码与数据分开。
  • 要将字符串文字注入HTML代码,您可以使用htmlspecialchars()
  • 要将字符串文字注入JavaScript代码,您可以使用例如json_encode()

......等等。注入与语言一样多,每种类型都需要独立处理。