我有一個網站使用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