我使用fancybox在彈出窗口中顯示用戶生成標題的照片。而試圖獲得在彈出顯示逃脫標題,我注意到以下行爲:轉義標題屬性在jquery中變爲未轉義
console.log($("<a title=\"<script>alert('test')</script>\">").attr('title'));
輸出:<script>alert('test')</script>
console.log($("<p><script>alert('test')</script></p>").html());
輸出:<script>alert('test')</script>
console.log($("<p><script>alert('test')</script></p>").text());
輸出:<script>alert('test')</script>
我的問題是,山雀le在彈出窗口中是通過調用obj.attr('title')
,它返回未轉義的標題而不是轉義的標題。
如何在obj.attr('title')
調用中獲得轉義標題?
我的模板系統提供了方法,通過將字符「<", ">」,「&」和「」」爲‘<’,‘>’,‘&’和‘"’來逃脫標籤。在生成html頁面時,通過escape方法過濾title =「」內容,我認爲這樣做足夠安全。現在我需要做&的另一個轉義&我幾乎錯過了這一個,如果我讓它滑倒,這將是一個XSS安全保留。 – perlwle 2011-06-15 13:24:54