天天看点

跨站脚本(XSS)

跨站脚本: cross-site scripting或者XSS, 即攻击者向目标Web站点注入HTML标签或者脚本

     如果网站没有通过移除任何嵌入的HTML标签来消毒,那么web页面很容易受到跨站脚本攻击

简单例子:

下面的js脚本时向用户say hello

eg: http://www.example.com/greet.html?wish

此时输出Hello, wish

如果通过http://www.example.com/greet.html%3Cscript%3Ealert(‘(*^__^*)‘)%3C/script%3E调用,则页面会执行js脚本

并且弹出对话框(*^__^*) 

当然如果在后面嵌入script文件则可进行其他的攻击如下:

则B站点的evil.js会嵌入到example.com中,并对站点A的内容进行任何想要的操作,也可以读取cookie中用户相关信息

通常防止XSS攻击的方式是,在使用任何不可信的数据来动态创建文档内容之前,应该从中移除HTML标签

当然在IE8中可以使用toStaticHTML()方法

在HTML5中增加了sandbox,增强了iframe可靠性

eg:

  allow-scripts                  

允许在沙盒中执行JavaScript脚本

  allow-forms            

        允许在沙盒中提交表单

  allow-same-origin    

          允许在沙盒中存取由同源完全策略保护的API

  allow-top-navigation          

 允许在沙盒中将内容变更为最顶层的窗口

  ms-allow-popups          

      允许在沙盒中弹出窗口

eg:如想允许执行脚本: