跨站脚本: 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:如想允许执行脚本: