老话重提:防范跨站脚本攻击

今年5月,Web安全咨询师George Deglin发现了一段成功实施了攻击的跨站脚本(XSS)代码,这段代码利用了Facebook颇有争议的即时个性化功能。该代码在Facebook所选中的测试即时个性化的3个网站之一——Yelp上运行。运行该代码段,Deglin不仅获得了与Yelp共享的Facebook上的个人档案信息,而且还截获了发送档案给Facebook好友的邮箱地址——这无论对于市场销售人员还是垃圾邮件发送者来说都是一座潜在的金矿。

就在Deglin发现的XSS漏洞被修补上之后没多久,另一个XSS漏洞又在Yelp上出现,搞得Facebook只好将该网站的即时个性化程序暂时挂起来。

XSS攻击并不新鲜,但是随着社交媒体的兴起,又给了此类攻击一片新的用武之地。

XSS简单入门

最常见的XSS攻击方法就是利用邮件:犯罪分子在一个普通的URL网址中添加一些特殊字符,例如添加几个外文字符。这些字符会适时地告知运行事先制作好的脚本的Web服务器,举例来说,一个攻击者给你的网上银行的网址中添加了这样一个脚本,然后发邮件给你。假如你相信这是来自你的网上银行的合法邮件,然后点击了邮件提供的链接地址,那么你的浏览器就会给那台Web服务器发送该脚本,这台服务器上所运行的恶意代码就会截获你的浏览器cookies和你的银行登录信息,转发给攻击者,后者便可登录进你的网上银行账号。

另一类XSS攻击会将恶意代码存放在一台Web服务器上。攻击者登录比如说一家电子商务网站,然后发送一条含有XSS跨站脚本的消息。数天之后,如果你登录了这家电子商务网站,阅读了这条不良消息,就会和前一类一样,该脚本盗取你的cookies和登录信息,并将其转发给犯罪分子,而他便可以冒充你了。

第三类XSS攻击是针对Web浏览器的。在这种情形中,攻击者会在你所访问的网站上放置一个带毒的Flash文件。当你的浏览器下载这段Flash视频的时候,该文件便会触发一个跨站脚本,攻击者便可掌控你的浏览器所浏览的页面元素。

Web 2.0和XSS

今天的很多网站在过滤常见的XSS供给方面都要比过去做得好。

假设你点击了A网站上的一个广告。但是你不知道的是,该广告含有一个跨站脚本,可以悄悄地将你的浏览器定向到B网站,比如一家旅游网站和社交网站彼此合作,那么前者便可通过你的点击而轻松获得你的社交网络档案。利用XSS攻击,你就成了一个牺牲品,你甚至不必去访问B网站,登录B网站,点击它上面的任何东西,你甚至可能都不知道B网站的存在。由于B网站已经截获了你的社交网络档案(可能还有你的好友们的档案),于是犯罪分子便可以躲藏在A网站的广告后面,大摇大摆地截获你的信息了。这就是Web 2.0的聚合功能带来的麻烦,也就是Facebook-Yelp的合作为什么会出现XSS攻击的原因。

自我保护

遗憾的是,网站还无法通过连接加密简单地防范XSS攻击。有SSL连接的网站,也就是你在浏览一个加密网站时在工具栏上会出现一个小挂锁的网站,也只不过是对攻击进行了加密而已。一般来说,网站设计人员必须锁定他们的网站才能防止XSS攻击。

不过用户也有两种方法可避免XSS攻击。其一是忽略一个网站到另一个网站的链接:比如说,如果A网站链接到somerandomsite.com/page,那么你如果先要上这个网站,最好不要去直接点击该链接,而是通过搜索功能去查找该网站。这种方法可有效防止嵌入在链接网址中的XSS攻击,但是这种方法用起来不太方便,而且当两个网站共享内容时就没办法用了。另外一种方法是在你的浏览器中禁用像JavaScript脚本语言。即便因此可能会让一些网站上的一些很不错的功能没法使用,只要你还能够容忍就行。

禁止危险脚本

IE8是第一款内置了XSS脚本拦截保护的浏览器。谷歌的Chrome也会紧随其后推出类似功能。这两款浏览器都会首先查看来自某个Web服务器的脚本是否是恶意的——如果是,就拦截它。在今年4月的黑帽欧洲2010大会上,研究专家David Lindsay和Eduardo Vela Nava却演示了一种可以破除这种拦截的办法,不过谷歌已经修复了Chrome中的这个漏洞。微软则在今年1月(补丁MS10-002)和3月(MS10-018)也已解决了大部分问题,并计划在6月修复第3个漏洞,所以在你读到这篇文章的时候,破除XSS脚本拦截的问题可能已经完全解决了。

Firefox的用户则可以利用免费的NoScrpit附加组件有选择地拦截脚本。比如说,你可以放行一段Flash视频,而同时拦截该网站上的其他脚本组件。IE和Chrome在拦截可疑脚本方面没有这么细的粒度——它们是要么全拦截,要么全不拦截。

NoScrpit也有一个问题,那就是大多数用户并不喜欢放行个别脚本的做法,因为这样会带来不便。不过拦截和放行今后可能会成为你的第二天性。你还可以对某个特定网站上的所有脚本进行认证,无论是为了一次性访问还是今后的所有访问,这样的认证如今在IE 8和chrome中也可以做了。  

【编辑推荐】

  1. 详解XSS跨站脚本攻击
  2. 十二问让你全面了解跨站脚本攻击

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/148569.html<

(0)
管理的头像管理
上一篇2025-03-12 05:23
下一篇 2025-03-12 05:24

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注