网络广告公司的恐慌 XSS广了结结者(html5新特性)

       人们在平时网络冲浪的时候,有时候会发现当前网站有不少莫名其妙的广告,这些广告会被导向到站外。php

       这些广告多是你安装了一些免费网络软件后强制安装的浏览器插件致使的。css

       譬如chrome浏览器:html

      

        

        致使google显示以下广告:html5

        

 

        

 

          Geo Edge插件会向当前页面引入一个脚本,该脚本会将广告的DOM插入到页面任何位置。ajax

 

         插件引入广告植入脚本:chrome

 

       如今html5出了个  Contnt-Security-Policy特性,只要在response里加上该header,任何外来域名的资源(css、image、js)等都被屏蔽掉:浏览器

 

咱们来个测试如何:安全

<?php 
header("Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' http://www.baidu.com");
echo <<< EOT
<!DOCTYPE html>
<html >
<head>
    <script>
    var tfx_to={
        createXMLHttpRequest:function(){
                if (window.XMLHttpRequest)
                    {
                        return new XMLHttpRequest();
                    }
                    else if (window.ActiveXObject)
                    {
                        return new ActiveXObject("Microsoft.XMLHttp");
                    }
        },
        post:function(pt,url,callback,sync){
                    var validateResult = function()  
                    {     
                        if(xt.readyState==4)  
                        {  
                            if(xt.status==200)  
                            {   
                                callback(xt.responseText);  
                            }  
                        }  
                    }
                var xt=this.createXMLHttpRequest();
                xt.onreadystatechange=validateResult;
              xt.open("POST", url, sync);
            xt.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
              xt.send(pt);
        }
     }
     function callback(data){
        
         alert(data);
        
     }
     tfx_to.post(null,"http://www.csdn.net",callback,false);
    </script>
</head>
<body>
    <div id="container" style="width: 1888px;  height: 2890px; margin: 0 auto">aaabbba</div>
</body>
</html>
EOT;
?>

 

header("Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' http://www.baidu.com");这个header只限制当前Websites的资源域名为百度
而ajax去call的csdn的域名,看浏览器控制台报错:

违反了 内容安全策略,该资源无法加载

支持的浏览器,绿色部分:网络

相关文章
相关标签/搜索