PDO语句和XSS攻击



我在托管在本地主机服务器的一个页面中有一个 POST 参数。

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

并在其中一个更新.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));

谢谢

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

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

等等。注入次数与语言一样多,每种类型都需要独立解决。

最新更新