<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:313414472; mso-list-type:hybrid; mso-list-template-ids:-1433111036 -1423541248 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-text:%1、; mso-level-tab-stop:57.75pt; mso-level-number-position:left; margin-left:57.75pt; text-indent:-36.75pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
跨站点脚本( XSS )攻击目前非常普遍,但大多数的网站开发者都不知道什么是 XSS 和如何去防范,网站开发者不去关心它一个主要原因是因为这种攻击不会去破坏网站的数据。这种攻击的特点是通过运行在网站上的一些非法脚本来窃取用户的信息,而用户无法察觉是因为他们信任这个网站。
什么是 XSS ?它是如何应用的?
XSS 指的是恶意攻击者往 Web 页面里插入恶意脚本代码,当用户浏览该页之时,嵌入在 Web 里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。
XSS 有两种类型,第一种被称为“存储”攻击。将恶意代码通过一个文本输入框保存到应用里。这个输入框可能是一个评论框,搜索框或是论坛的信息框等等。对于目前大多数的提供用户评论和反馈功能的 Web2.0 应用来说这是一个相当大的隐患。如果允许用户插入和存贮数据到你的应用中,那么很容易受到 XSS 攻击。
另一种被称为“反射”攻击。 reflected XSS 攻击利用了 Web 应用程序安全性低的弱点,该应用程序在浏览器中显示输入参数而不对其中是否存在非法内容进行检查。通常,攻击者会诱使用户单击 URL ,而这个 URL 已嵌入了恶意脚本。而网站则“反射”这个脚本给用户并且在用户的浏览器里执行此脚本。
XSS 攻击的效果是什么样的?谁是受害者?
一般来讲,用户是最大的受害者而不一定是网站,而这也是 XSS 攻击隐蔽性的一个特点。早期的 XSS 攻击都集中在盗取用户 cookie ,而现在出现了一些更具破坏性的攻击方式。这些攻击可以降低网站的速度,导致用户执行一些不需要的行为(例如 MySpace 的 Smay 蠕虫),甚至在一个正常网站里植入钓鱼网站。
假设你要去一个你喜欢的网站去购买东西,于是你访问了这个网站,并且所有的安全检查都是通过的。 SSL 证书是正确的,域是正确的。你会认为你很安全,但并非如此。当你填写了你的用户 ID 和密码后,你可能会执行一段恶意的脚本将你的表单中的数据发送到别的地方。而你却根本不知道这回事。
这就好像小偷在一台 ATM 前安装了一个伪装的输入端,这个伪装的输入端读取你的卡数据并传给真正的 ATM 机。而你如愿以偿得到了钱。但是小偷却得到了你的账号和密码。 XSS 就可以做到这些,但是其更加透明和隐蔽,因此这类攻击非常普遍。
如何察觉 XSS 攻击?
察觉 XSS 攻击在技术上并不难,但是工作量却是巨大的。基本上你得检查网站里所有的表单和输入域,任何一个输入到应用里的数据都需要检查。使用手工方式显然是一项艰巨的工作,所以你最好使用自动化扫描技术来完成。
如何防御 XSS 攻击?
可以从三个方面考虑如何防御 XSS 攻击:
1、 Web 应用防火墙:使用 Web 应用防火墙可以阻止你的网站去调用外部网站的脚本。所以当你使用了 Web 应用防火墙可以很大程度上地消除这个问题。当然必须确保你所有的处理都需要通过防火墙,以便确保在应用中没有别的线路可以绕开防守。
2、 代码框架:很多的应用框架都可以降低 XSS 攻击风险,这些框架都具有内置的验证程序以确保表单和输入域不能接受外部的脚本。微软就这个问题在 ASP.net 中提供了许多先进的验证检查的内建命令。 J2EE 和 Rails 也提供了很多建议和文件,以防范跨站脚本攻击。
3、 培训开发人员:虽然说很多框架都增加了如何预防 XSS 攻击,但最终你还是需要让开发人员了解攻击的原理并且在编码时在思想上有意识地去规避这些风险。虽然有可能开发人员对安全方面并不是特别的关心,但是通过不断的宣传和持续的应用测试,可以使开发人员有更深刻的理解。
XSS 攻击对互联网应用具有很大的危害性,但是它是可以控制的。使用一些预防性的扫描和多采取积极主动的预防措施,大多数的 XXS 攻击风险都是可以消除的。
3666

被折叠的 条评论
为什么被折叠?



