xss攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(cascading style sheets, css)的縮寫混淆,故將跨站腳本攻擊縮寫為xss,xss是一種在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。
php防范xss的方法有在輸出html時,加上content security policy的http header;在設置cookie時,加上httponly參數;檢驗請求的referer參數
php防范xss
1、php直接輸出html的,可以采用以下的方法進行過濾:
htmlspecialchars函數
htmlentities函數
htmlpurifier.auto.php插件
removexss函數
2、php輸出到js代碼中,或者開發(fā)json api的,則需要前端在js中進行過濾:
盡量使用innertext(ie)和textcontent(firefox),也就是jquery的text()來輸出文本內容
必須要用innerhtml等等函數,則需要做類似php的htmlspecialchars的過濾
3、其它的通用的補充性防御手段
在輸出html時,加上content security policy的http header
作用:可以防止頁面被xss攻擊時,嵌入第三方的腳本文件等
缺陷:ie或低版本的瀏覽器可能不支持
2.在設置cookie時,加上httponly參數
作用:可以防止頁面被xss攻擊時,cookie信息被盜取,可兼容至ie6
缺陷:網站本身的js代碼也無法操作cookie,而且作用有限,只能保證cookie的安全
3.在開發(fā)api時,檢驗請求的referer參數
作用:可以在一定程度上防止csrf攻擊
缺陷:ie或低版本的瀏覽器中,referer參數可以被偽造