ie浏览器提示错误的原字样为: Internet Explorer 已对此页面进行了修改,以帮助阻止跨站点脚本!
- 浏览器: ie8+
- 系统:winxp win7 vista
- post请求至其他域名站点(非本站点域名)
如果满足以上三点问题,我就大概可以确定你所发生的问题就是我这篇博文要解决的问题。
只需要在目标页面添加一个header头标记就可以搞定这个问题,
response.addHeader("X-XSS-Protection","0");
response.addHeader("X-XSS-Protection","0");
response.addHeader("X-XSS-Protection","0");
- 官方解释(跨站点脚本筛选):
一个网站向另一个网站注入或添加 JavaScript 进行非法请求,即构成跨站点脚本攻击。原始请求一般都是合法的,例如原始请求可以是一个指向另一个页面的链接,也可以是提供常用服务(如留言簿)的通用网关接口 (CGI) 脚本。注入的脚本通常会尝试访问另一个网站不允许访问的特权信息或服务。响应或请求通常会将结果反馈给该恶意网站。XSS 筛选器是 Windows® Internet Explorer® 8 的新功能,用于检测 URL 和 HTTP POST 请求中的 JavaScript。检测到 JavaScript 时,XSS 筛选器会搜索反射的证据,即攻击请求在没有更改的情况下提交时,返回给攻击网站的信息。如果检测到反射,XSS 筛选器将审查该原始请求,这样附加的 JavaScript 将无法执行。
详细参考地址: http://technet.microsoft.com/zh-cn/library/dd638324%28WS.10%29.aspx
- 其他解决办法:
在 "Internet 控制面板" 中控制 XSS 筛选器,具体参考 http://bjyzxxds.iteye.com/blog/453119
- 两种方法对比:
两种方法对比,我感觉第一种解决方法是最为合适的,想让某一个页面跨站点脚本,可以添加一个header就ok,这样相对于其他的站点访问,安全问题是最大的,其他解决办法是通过设置internet选项,这种方法不是很安全,因为所有的页面都会公用这一个设置,所以安全存在很大的问题!还有一个问题就是现在的项目都是bs模式的,所以说用户所用的工具都是浏览器,为了实现这一个效果,不可能每次给用户配置电脑的时候,都得说把internet里面的xss选项给禁用了。