WEB安全的防御--介绍XSS跨网站脚本[wiki]

来源:互联网 发布:上山下乡知乎 编辑:程序博客网 时间:2024/06/05 02:40

跨网站脚本

维基百科,自由的百科全书
跳转至: 导航、 搜索

本条目可通过翻译英语维基百科的相应条目来获得改善

跨网站脚本Cross-site scripting,通常简称为XSS跨站脚本跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

  • 跨网站脚本
    • 目录
    • 背景和现状编辑
    • 缩写编辑
    • 检测方法编辑
    • 攻击手段和目的编辑
    • 漏洞的防御和利用编辑
      • 过滤特殊字符编辑
      • 使用HTTP头指定类型编辑
      • 用户方面编辑
    • 外部链接编辑
      • 脚注编辑

背景和现状[编辑]

当网景(Netscape)最初推出JavaScript语言时,他们也察觉到准许网页服务器发送可运行的代码给一个浏览器的安全风险(即使仅是在一个浏览器的沙盒里)。它所造成的一个关键的问题在于用户同时打开多个浏览器视窗时,在某些例子里,网页里的片断代码被允许从另一个网页或对象取出数据,而因为恶意的网站可以用这个方法来尝试窃取机密信息,所以在某些情形,这应是完全被禁止的。为了解决这个问题,浏览器采用了同源决策——仅允许来自相同域名系统和使用相同协议的对象与网页之间的任何交互。这样一来,恶意的网站便无法借由JavaScript在另一个浏览器窃取机密数据。此后,为了保护用户免受恶意的危害,其他的浏览器与服务端指令语言采用了类似的访问控制决策。

XSS漏洞可以追溯到1990年代。大量的网站曾遭受XSS漏洞攻击或被发现此类漏洞,如Twitter[1],Facebook[2],MySpace,Orkut[3][4] ,新浪微博[5]和百度贴吧 。研究表明[6],最近几年XSS已经超过缓冲区溢出成为最流行的攻击方式,有68%的网站可能遭受此类攻击。根据开放网页应用安全计划(Open Web Application Security Project)公布的2010年统计数据,在Web安全威胁前10位中,XSS排名第2,仅次于代码注入(Injection)。[7]

缩写[编辑]

Cross-site scripting的缩写是CSS,但因为CSS在网页设计领域已经被广泛指层叠样式表(Cascading Style Sheets),所以将Cross改以发音相近的X做为缩写。但早期的文件还是会使用CSS表示Cross-site scripting。

检测方法[编辑]

通常有一些方式可以测试网站是否有正确处理特殊字元:

  • ><script>alert(document.cookie)</script>
  • ='><script>alert(document.cookie)</script>
  • "><script>alert(document.cookie)</script>
  • <script>alert(document.cookie)</script>
  • <script>alert (vulnerable)</script>
  • %3Cscript%3Ealert('XSS')%3C/script%3E
  • <script>alert('XSS')</script>
  • <img src="javascript:alert('XSS')">
  • <img src="http://xxx.com/yyy.png" onerror="alert('XSS')">
  • (这个仅限IE有效)

攻击手段和目的[编辑]

攻击者使被攻击者在浏览器中执行脚本后,如果需要收集来自被攻击者的数据(如cookie或其他敏感信息),可以自行架设一个网站,让被攻击者通过JavaScript等方式把收集好的数据作为参数提交,随后以数据库等形式记录在攻击者自己的服务器上。

常用的XSS攻击手段和目的有:

  • 盗用cookie,获取敏感信息。
  • 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
  • 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
  • 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
  • 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

漏洞的防御和利用[编辑]

过滤特殊字符[编辑]

避免XSS的方法之一主要是将用户所提供的内容进行过滤,许多语言都有提供对HTML的过滤:

  • PHP的htmlentities()或是htmlspecialchars()
  • Python的cgi.escape()
  • ASP的Server.HTMLEncode()
  • ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library
  • Java的xssprotect (Open Source Library)。
  • Node.js的node-validator。

使用HTTP头指定类型[编辑]

很多时候可以使用HTTP头指定内容的类型,使得输出的内容避免被作为HTML解析。如在PHP语言中使用以下代码:

<?phpheader('Content-Type: text/javascript; charset=utf-8');?>

即可强行指定输出内容为文本/JavaScript脚本(顺便指定了内容编码),而非可以引发攻击的HTML。

用户方面[编辑]

包括Internet Explorer、Mozilla Firefox在内的大多数浏览器皆有关闭JavaScript的选项,但关闭功能并非是最好的方法,因为许多网站都需要使用JavaScript语言才能正常运作。通常来说,一个经常有安全更新推出的浏览器,在使用上会比很久都没有更新的浏览器更为安全。

外部链接[编辑]

  • CERT® Advisory CA-2000-02 Malicious HTML Tags Embedded in Client Web Requests (英文)
  • Cross Site Scripting Info (英文)
  • The Same Origin Policy (英文)
  • XSS (Cross Site Scripting) Cheat Sheet (英文)

脚注[编辑]

  1. ^ Arthur, Charles. Twitter users including Sarah Brown hit by malicious hacker attack. The Guardian. September 21, 2010 [September 21, 2010]. 
  2. ^ Leyden, John. Facebook poked by XSS flaw. The Register. May 23, 2008 [May 28, 2008]. 
  3. ^ Full List of Incidents. Web Application Security Consortium. February 17, 2008 [May 28, 2008]. 
  4. ^ Obama site hacked; Redirected to Hillary Clinton. ZDNet. April 21, 2008 [May 28, 2008]. 
  5. ^ 新浪微博病毒事件分析. SOHU. 2011-06-28. 
  6. ^ Berinato, Scott. Software Vulnerability Disclosure: The Chilling Effect. CSO (CXO Media). January 1, 2007: 7 [June 7, 2008]. (原始内容存档于2008-04-18). 
  7. ^ OWASP Top 10 - 2010 Document (PDF). OWASP. April 19, 2010 [Jan 2, 2013]. 


 
电脑入侵
事件
  • 2003年骤雨计划
  • 2010年澳大利亚网络攻击英语February 2010 Australian cyberattacks
  • 2010年偿还行动英语Operation Payback
  • 2011年DigiNotar黑客入侵事件
  • 2011年突尼斯行动英语Operation Tunisia
  • 2011年PSN个人信息泄露事件
  • 2011年反安全行动英语Operation AntiSec
  • 2012–2013年斯特拉特福公司电邮泄露事件
  • 2012年领英黑客入侵事件
  • 2013年南韩网络攻击
  • 2013年Snapchat黑客入侵事件
  • 2014年Tovar行动英语Operation Tovar
  • 2014年日本文殊核电站电脑病毒事件
  • 2014年名人照片泄露事件
  • 2014年心脏出血漏洞
  • 2014年破壳漏洞
  • 2014年贵宾犬漏洞英语POODLE
  • 2014年索尼影业黑客入侵事件
  • 2015年FREAK漏洞
  • 2015年美国联邦人事管理局资料外泄案
政府机构
  • 美国网战司令部
  • 特定入侵行动办公室
  • 中国人民解放军61398部队
  • 朝鲜网络部队
  • 朝鲜121局英语Bureau 121
  • 叙利亚电子军英语Syrian Electronic Army
  • 日本网络防卫队
  • 国际打击网络威胁多边伙伴英语International Multilateral Partnership Against Cyber Threats
  • 美国互联网犯罪投诉中心英语Internet Crime Complaint Center
  • 欧洲网络犯罪中心英语European Cybercrime Centre
黑客组织
  • 匿名者
  • 网络金雕英语CyberBerkut
  • Derp英语Derp (hacker group)
  • Goatse安全英语Goatse Security
  • Hacking Team
  • 蜥蜴小队英语Lizard Squad
  • LulzRaft英语LulzRaft
  • LulzSec
  • NullCrew英语NullCrew
  • RedHack英语RedHack
  • TeaMp0isoN英语TeaMp0isoN
  • 地下纳粹英语UGNazi
  • 混沌计算机俱乐部英语Chaos Computer Club
  • 死牛崇拜
  • 中国红客联盟
  • 夜龙
  • 韩国网络外交使节团
  • L0pht重工英语L0pht Heavy Industries
  • 地下军团 (Legions of the Underground)
  • 方程式
  • 香港金发女 (Hong Kong Blondes)
个人
  • 约翰·德雷珀英语John Draper
  • 凯文·米特尼克
  • 下村努
  • 罗伯特·泰潘·莫里斯
  • 凯文·波尔森
  • 阿德里安·拉莫英语Adrian Lamo
  • Donncha O’Cearbhaill英语Donncha O’Cearbhaill
  • 杰里米·哈蒙德英语Jeremy Hammond
  • 乔治·霍兹
  • 古驰法英语Guccifer
  • 阿尔伯特·冈萨雷斯英语Albert Gonzalez
  • 赫克特·蒙赛格 (萨布)英语Hector Monsegur
  • 杰克·戴维斯 (绿色雕塑)英语Topiary (hacktivist)
  • 小丑 (The Jester)英语The Jester
  • weev英语weev
  • 加里·麦金农英语Gary McKinnon
恶意软件
  • Careto (面具)英语Careto (malware)
  • CryptoLocker
  • Dexter英语Dexter (malware)
  • 毒区英语Duqu
  • FinFisher英语FinFisher
  • 火焰
  • Gameover ZeuS英语Gameover ZeuS
  • Mahdi英语Mahdi (malware)
  • Metulji僵尸网络英语Metulji botnet
  • NSA ANT产品目录英语NSA ANT catalog
  • R2D2英语R2D2 (trojan)
  • Shamoon英语Shamoon
  • Stars英语Stars virus
  • 震网
  • 震荡波蠕虫
  • 手机病毒英语Mobile virus
概念·思想
  • 网络战
  • 网络恐怖主义英语Cyberterrorism
  • 黑客行动主义英语Hacktivism
  • 黑客
  • 电脑犯罪
  • 软件破解英语Software cracking
手段·技术
  • 高级长期威胁 (APT)
  • 零日攻击
  • 跳板
  • DNS污染
  • 缓冲区溢出
  • 暴力破解法
  • 跨站脚本攻击 (XSS)
  • 漏洞利用
  • 水坑攻击英语Watering Hole
  • 偷渡式下载
  • SQL注入攻击
  • 中间人攻击
  • 夺旗


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 国企员工涨工资不在编的员工怎么办 装车牌照的螺丝孔小了怎么办 北京摇号之后中签和未中签怎么办 拉轿车的大车出车祸车怎么办 美图m6手机忘记锁屏密码怎么办 微信验证码登录收不到验证码怎么办 微信被限制登录收不到验证码怎么办 微信登录申诉收不到短信怎么办 登录微信手机收不到验证码怎么办 美图t8冲一会电就发烧怎么办 美图t8系统不小心升级了 怎么办 美图手机看相册视频就会变黑怎么办 苹果4s屏幕唤醒速度慢怎么办 美图m4换电池后不显示卡怎么办 美图手机久没充电再充没反应怎么办 美图6s开不开机怎么办 苹果4s照片不能拍照黑屏怎么办 美图手机开机键坏了怎么办 金立金刚二手机烧卡怎么办 金立金刚手机开不开机怎么办 小米4手机拆机信号不好怎么办 荣耀自带游览器无法正常打开怎么办 苹果4s电池越来越不耐用怎么办 苹果4s电池不耐用了怎么办 苹果手机4s电池不耐用怎么办 红米4s电池不耐用怎么办 32位app私密相册打不开怎么办 红米手机取卡针断手机里了怎么办 我差评了客服打电话骂我怎么办 顺丰快递在预计时间没有回来怎么办 同款商品比京东便宜怎么办 京东自营不支持7天退货怎么办 天猫买了一个月的电动车坏了怎么办 发票号码和机打号码不一致怎么办 交电费的本子弄丢了怎么办 快递正在派件中发现地址错了怎么办 快递当天送达当天签收还算延怎么办 深圳国税公众号预约取号公司怎么办 社保买了停了2年怎么办 qq号被冻结申请不回来了怎么办 qq号被冻结 手机密保忘了怎么办