我有一个网站使用PDO编写的PHP。我现在用的是bindParam()函数来绑定到一个SQL INSERT查询:PHP和PDO阻止Javascript注入
("insert into Table (id, date, data) VALUES (?, ?, ?)")
,但我能够插入包含
"<script>window.location="google.com"</script>"
如何防止这样的字符串?
谢谢!
我有一个网站使用PDO编写的PHP。我现在用的是bindParam()函数来绑定到一个SQL INSERT查询:PHP和PDO阻止Javascript注入
("insert into Table (id, date, data) VALUES (?, ?, ?)")
,但我能够插入包含
"<script>window.location="google.com"</script>"
如何防止这样的字符串?
谢谢!
PDO是不会阻止你这样做。您需要将自己绳子的护理:
<script>
标签,使用strip_tags
htmlentities
假设你的意思
<script>window.location="google.com"</script>
你应该担心显示行上注入保护,如您不想与HTML实体来填充数据库。
在显示数据库内容的页面上使用htmlspecialchars()
[1]。
[1] http://www.php.net/manual/en/function.htmlspecialchars.php
你是什么意思?我不应该阻止这些进入数据库首先? – 2010-09-15 03:32:08
你可以过滤输入到数据库或过滤输出到浏览器,只要确保你不过滤两次。目前我的首选是过滤输出,以免数据库散布HTML实体。 – Andrew67 2010-09-15 18:05:54