被动攻击与同源策略

1.主动攻击与被动攻击

主动攻击:攻击者直接攻击Web服务器,SQL注入攻击。

被动攻击:攻击者并不直接攻击服务器,而是针对网站的用户设下陷阱,利用掉入陷阱的用户来攻击应用程序。

单纯的被动攻击——将用户诱导至设有圈套的网站,利用浏览器、Adobe Reader、Adobe Flash Player、JRE等插件的漏洞。

恶意利用正规网站进行的被动攻击——通过在正规网站设置陷阱来实施攻击。

在正规网站中设置陷阱的方式:

非法获取FTP等服务器的密码后篡改网站内容;

攻击WEB服务器的安全隐患来篡改网站内容;

通过SQL注入攻击篡改网站内容;

在用户能够自己发布内容的网站上,利用跨站脚本实施攻击。

跨站被动攻击——同时使用恶意网站和正规网站的被动攻击模式。

  • 用户浏览恶意网站
  • 从恶意网站下载含有恶意代码的HTML
  • HTML中的恶意代码被触发,从而向正规网站发送攻击请求
  • 正规网站返回含有JavaScript等的响应内容

2.浏览器的安全功能

沙盒,JavaScript、Java Applet、Adobe Flash Player使用的一种策略。

  • 禁止访问本地文件
  • 禁止使用打印机等资源(可以显示页面)
  • 限制网络访问(同源策略)

同源策略,禁止JavaScript进行跨站访问的安全策略,浏览器的沙盒环境所提供的一项制约。

注意:如果主机相同,在iframe的外部就能够通过JavaScript取得iframe内部的HTML内容。如果恶意网站能用JavaScript访问iframe内部信息,那么个人信息会被恶意网站上的脚本发送给他的服务器。

同源的条件:

URL的主机(全称域名)一致;

Scheme(协议)一致;

端口号一致。

注意:发送cookie时的条件与协议或端口号无关,针对JavaScript的限制比较严格,JavaScript没有访问目录的权限。

3.应用程序安全隐患与被动攻击

使用iframe外层的JavaScript访问内层(其他主机)数据时由于违反同源策略,访问会被拒绝。

但是,可以使用XSS等手段将JavaScript放到iframe的内层去执行。由于在iframe内层不会受到同源策略的限制,因此能够成功访问文档信息。

第三方JavaScript:

网站运营者执行所信任的第三方JavaScript;

网页浏览者信任第三方而向网页中嵌入JavaScript。(火狐的插件Greasemonkey)

4.JavaScript以外的跨域访问

能够进行跨域访问的其他浏览器功能:

frame元素和iframe元素——iframe元素和frame元素能够进行跨域访问,但通过JavaScript却不能跨域访问iframe中的文档内容。

X-FRAME-OPTIONS:制定了DENY的响应将不能显示在frame等的内层中,而SAMEORIGIN的情况下则仅当与地址栏上显示的域名为同源时才能够被显示。

将不使用iframe或framed额网站指定为DENY,使用frame并且使用单一主机的网站指定为SAMEORIGIN,可以更好地防御利用frame执行的各种攻击。

img元素——src属性能够制定其他域名,请求图像时会附带图像所在主机的cookie,能够让恶意网站上的图像显示为“此图像需要认证”。

如果不想让自己的图像被贴到某些特定网站,则可以针对图像j检验Referer消息头。这样会使关闭了Referer的用户无法看到图像。

script元素——指定src属性能够从其他网站来读取JavaScript。

假设A网站读取B网站的JavaScript:

JavaScrip的源代码位于B网站的服务器中,但是被读取后,作用范围就变成了读取它的HTML所在的A网站。所以JavaScript执行document.cookie后得到的便是A网站上的cookie信息。

A网站向B网站发送取得JavaScript的请求时,也会同时向B网站发送cookie。根据用户在B网站的登录状态,B网站的JavaScript代码有可能会发生变化,从而影响A网站中的内容。

JSONP是从Ajax应用来访问不同来源的服务器中的数据时所采取的一种方式,根据认证状态的不同,JavaScript代码(JSONP中的数据)会发生变化,可能会导致信息泄露事故,所以JSONP不能用于传送隐私信息。

CSS——能够被跨域读取,除了HTML的link元素之外,也能在CSS中使用@import,使用JavaScriptd额addImport方法。

在老版本的IE中,存在CSSXSS安全隐患,使HTML或JS被当做CSS读取。

form元素的action属性——action属性也能够跨域指定,无论action的目标是否跨域,form的提交都能通过JavaScript来操作。

恶意利用form元素的特性来实施攻击的方式称为跨站请求伪造(CSRF),让用户在不知情的情况下提交form,从而肆意使用应用中的功能。

总结:JavaScript的同源策略是浏览器防御被动攻击的代表性对策。若浏览器或Web应用中存在安全隐患,攻击者可绕过同源策略而执行攻击。

猜你喜欢

转载自www.cnblogs.com/wcsan/p/9173831.html