Cross Frame Scripting的解决办法

有時白箱工具會掃出 Client Cross Frame Scripting Attack ,


可以在 Header 中加入設定 X-FRAME-OPTIONS 


但是這樣有些 白箱工具並不知道,


客戶還是會要你改到 Report 看不到,


那怎麼辦呢?


 


這時候一般會在js中加入


if (top != self) {top.location = self.location;} 


但這樣子,又會引發另一個 issue,


Client DOM XSRF 問題,


所以解法可以改成


<script>if (top.frames.length != 0) alert(‘error’) </script>


或是加上 encode 去避掉 XSRF 的問題,如下,
<script>
if (top != self) {
top.location = encodeURI(self.location); } </script>

有话要说