XSS:跨站腳本攻擊,重要的是腳本
XSS成因:
數據與代碼未分離
XSS原理:
數據變量輸出到HTML時,拼接成新的語義
XSS防禦:
- 輸出到HTML標籤中,對變量使用HTMLEncode
- 輸出到HTML屬性中,對變量使用HTMLEncode
輸出到<script>標籤中,
1.確保變量在引號中;
2.使用JavascriptEncode在事件中輸出,
1.確保變量在引號中;
2.使用JavascriptEncode- 在CSS文件中輸出,使用OWASP ESAPI中的encodeForCSS
- 在URL的path和search中輸出,使用URLEncode
變量是整個URL,
1.檢查變量是否以“http”開頭
2.進行URLEncode富文本
1.通過htmlparser解析HTML中的標籤和數據
2.“白名單”過濾
3.儘可能禁止CSS與style- DOM Based CSS,重複上述檢查