HTML Filter 3: XSS
講了那麼多 HTML Filter 的例子 ,例子2,回到一個問題?如果照著之前的程式,有沒有辦法防範 XSS ?我現在給的答案是
不容易為什麼?難道 Rails 那麼爛?錯了,看看這個表吧,當你的站遇到 Extra dot for absolute DNS 這種攻擊。
<IMG """><SCRIPT>alert("XSS")</SCRIPT>">我們發現,有太多玩法可以放 XSS,而濾掉特定 tag 方式幾乎行不通,因為我們還是希望開放某些有用的 tag 像是 a 或是 img。但是我們可以減少這種可能發生率
- 使用 white list filter ,盡量少用 black list,whitelist 就是僅僅開放某些 tag ,blacklist 就是僅僅關閉某些 tag。我之前的 html filter 就是 white list 的。
- href 跟 src 裡面要檢查 javascript 的欄位
- 如果沒必要開放 tag ,盡量使用 h 通殺
沒有留言:
張貼留言