<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="javascript防劫持-防止网页被Frame-Content Security Policy-添加integrity属性" id="card1">
<p> 游客</p><p>
标题:javascript防劫持-防止网页被Frame-Content Security Policy-添加integrity属性<br/>
正文:<br/>
什么是javascript劫持javascript劫持属于HTTP劫持中的一种，主要是劫持js文件，然后在网页中通过js脚本往网页中注入图片和链接或者框架广告，也叫流量劫持。 文明一点的劫持只是右下角放一个固定广告，不文明的就自动弹出新广告窗口（一般会被浏览器拦截）或者给整个网页添加点击事件弹出新广告页面。javascript劫持套路1、document.write注入假如页面中正常请求的是a.js，a.js请求被劫持后返回的脚本就可能是这样的：document.writeln('&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://www.xxx.com/a.js?tcdsp=true&quot;&amp;gt;&amp;lt;\/script&amp;gt;');document.write('&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://www.bbb.com/ad.js&quot;&amp;gt;&amp;lt;\/script&amp;gt;');document.write('其他脚本标签或字符');因为要保证页面正常，所以劫持者会还原a.js请求，为了避免死循环，所以在被劫持的js请求里添加特定的参数作区别，同时插入自己的js广告文件链接。 案例查看01_write.html对策：过滤document.write,document.writeln字符重写这两个方法，并在字符串中正则匹配完整script标签，并提取scr对比白名单，符合的就写入script标签。其他文本或标签全部忽略。 缺点：杀伤力过强。如果document.write把字符分开多次写入会漏检查或者说绕过检查。 注意：文档中尽量不要使用document.write\writeln形式插入标签！ 保护文件01_write_guard.html2、HTMLElement.innerHTML注入通过innerHTML可以注入各种标签。 案例查看02_innerHTML.html对策：过滤innerHTML注入标签不能是框架和script。重写HTMLElement.innerHTML方法，并在字符串中正则匹配/&amp;lt;(i?frame|script).+?&amp;lt;\/\1&amp;gt;/gi并过滤掉。 缺点：非法的图片和链接等没有过滤。也不能简单提取字符中的链接地址比较，因为很可能会<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2285&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2285&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2285&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2285&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2285&amp;Page=10">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2285">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2285">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>