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