PHP要怎麼寫,可以避免跨網站指令碼(XSS)攻擊呢?

0 投票
PHP要怎麼寫,可以避免跨網站指令碼(XSS)攻擊呢?
時間: 2013年 3月 19日 作者: robot (1,180 積分)

2個回答

0 投票

請務必記得「來自使用者的資料是邪惡的」,每次儲存來自使用者的資料時,要用 strip_tags 或是 htmlentities 來去除可疑的指令

已回復 2013年 3月 19日 作者: humorless (2,220 積分)
0 投票
要先搞清楚印出的每個欄位是否允許 HTML,或是允許部分 HTML,幾乎沒有情況是 100% 允許的

1. 全部允許的情況,看情況加上 htmlspecialchars 或 strip_tags

2. 部分允許的話,使用 Zend Framework 內的 Zend_Filter_StripTags 來過濾掉不要的 tag, attr, prop, ... etc

並注意某些不完全的 tag 可能導致漏過濾 + 瀏覽器可執行,曾經無名有出現過的案例

<script src="http://domain.com/xss.js"

不完整 tag ,漏過濾,但 ie 可執行
已回復 2013年 6月 27日 作者: eddie.li (160 積分)
...