PHP和PDO阻止Javascript注入

时间:2010-09-15 03:26:58

标签: php javascript pdo code-injection

我有一个用PHP编写的PHP网站。我使用bindParam()函数绑定到sql插入查询:

("insert into Table (id, date, data) VALUES (?, ?, ?)")

但我可以插入一个包含

的字符串
"<script>window.location="google.com"</script>"

如何防止这种情况?

感谢!!!

2 个答案:

答案 0 :(得分:2)

PDO不会阻止你这样做。你需要自己处理字符串:

  1. 如果您根本不想要<script>个标签,请使用strip_tags
  2. 如果您想要这些标签但不希望它们执行,请使用htmlentities

答案 1 :(得分:0)

假设你的意思

<script>window.location="google.com"</script>

您应该担心行显示上的注入保护,因为您不希望用HTML实体填充数据库。

在显示数据库内容的页面上使用htmlspecialchars() [1]。

[1] http://www.php.net/manual/en/function.htmlspecialchars.php