1. 程式人生 > >CSRF攻擊原理及防禦

CSRF攻擊原理及防禦

一、CSRF攻擊原理

  CSRF是什麼呢?CSRF全名是Cross-site request forgery,是一種對網站的惡意利用,CSRF比XSS更具危險性。想要深入理解CSRF的攻擊特性我們有必要了解一下網站session的工作原理。 

  session我想大家都不陌生,無論你用.net或PHP開發過網站的都肯定用過session物件,然而session它是如何工作的呢?如果你不清楚請往下看。 
先問個小問題:如果我把瀏覽器的cookie禁用了,大家認為session還能正常工作嗎? 

  答案是否定的,我在這邊舉個簡單的例子幫助大家理解session。 
比如我買了一張高爾夫俱樂部的會員卡,俱樂部給了我一張帶有卡號的會員卡。我能享受哪些權利(比如我是高階會員卡可以打19洞和後付費喝飲料,而初級會員卡只能在練習場揮杆)以及我的個人資料都是儲存在高爾夫俱樂部的資料庫裡的。我每次去高爾夫俱樂部只需要出示這張高階會員卡,俱樂部就知道我是誰了,並且為我服務了。

  這裡我們的高階會員卡卡號 = 儲存在cookie的sessionid; 
而我的高階會員卡權利和個人資訊就是服務端的session物件了。 

  我們知道http請求是無狀態的,也就是說每次http請求都是獨立的無關之前的操作的,但是每次http請求都會將本域下的所有cookie作為http請求頭的一部分發送給服務端,所以服務端就根據請求中的cookie存放的sessionid去session物件中找到該會員資料了。 
當然session的儲存方法多種多樣,可以儲存在檔案中,也可以記憶體裡,考慮到分散式的橫向擴充套件我們還是建議把它儲存在第三方媒介中,比如redis或者mongodb。 

  我們理解了session的工作機制後,CSRF也就很容易理解了。CSRF攻擊就相當於惡意使用者A複製了我的高階會員卡,哪天惡意使用者A也可以拿著這張假冒的高階會員卡去高爾夫俱樂部打19洞,享受美味的飲料了,而我在月底就會收到高爾夫俱樂部的賬單! 

  瞭解CSRF的機制之後,危害性我相信大家已經不言而喻了,我可以偽造某一個使用者的身份給其好友傳送垃圾資訊,這些垃圾資訊的超連結可能帶有木馬程式或者一些欺騙資訊(比如借錢之類的),如果CSRF傳送的垃圾資訊還帶有蠕蟲連結的話,那些接收到這些有害資訊的好友萬一開啟私信中的連線就也成為了有害資訊的散播著,這樣數以萬計的使用者被竊取了資料種植了木馬。整個網站的應用就可能在瞬間奔潰,使用者投訴,使用者流失,公司聲譽一落千丈甚至面臨倒閉。曾經在MSN上,一個美國的19歲的小夥子Samy利用css的background漏洞幾小時內讓100多萬用戶成功的感染了他的蠕蟲,雖然這個蠕蟲並沒有破壞整個應用,只是在每一個使用者的簽名後面都增加了一句“Samy 是我的偶像”,但是一旦這些漏洞被惡意使用者利用,後果將不堪設想,同樣的事情也曾經發生在新浪微博上面。 

  舉例: 

  CSRF攻擊的主要目的是讓使用者在不知情的情況下攻擊自己已登入的一個系統,類似於釣魚。如使用者當前已經登入了郵箱,或bbs,同時使用者又在使用另外一個,已經被你控制的站點,我們姑且叫它釣魚網站。這個網站上面可能因為某個圖片吸引你,你去點選一下,此時可能就會觸發一個js的點選事件,構造一個bbs發帖的請求,去往你的bbs發帖,由於當前你的瀏覽器狀態已經是登陸狀態,所以session登陸cookie資訊都會跟正常的請求一樣,純天然的利用當前的登陸狀態,讓使用者在不知情的情況下,幫你發帖或幹其他事情。

二、CSRF防禦

  • 通過 referer、token 或者 驗證碼 來檢測使用者提交。
  • 儘量不要在頁面的連結中暴露使用者隱私資訊。
  • 對於使用者修改刪除等操作最好都使用post 操作 。
  • 避免全站通用的cookie,嚴格設定cookie的域。

相關推薦

CSRF攻擊原理防禦

一、CSRF攻擊原理   CSRF是什麼呢?CSRF全名是Cross-site request forgery,是一種對網站的惡意利用,CSRF比XSS更具危險性。想要深入理解CSRF的攻擊特性我們有必要了解一下網站session的工作原理。   session我想大家都不陌生,無論你用.net或PHP

CSRF原理防禦

簡解:CSRF的原理及防禦 簡解CSRF的原理及防禦 CSRF 原理 防禦 檢驗HTTP Referer

Django之sql注入,XSS攻擊CSRF攻擊原理防護

sql注入的危害非法操作使用者資料庫的資料來獲取利益,通過修改資料庫來修改網頁的內容,注入木馬等比如下面的使用者登入時進行sql注入class LoginUnsafeView(View): def get(self,request): return r

csrf攻擊原理防範

        CSRF 全拼為 Cross Site Request Forgery, 跨站請求偽造.CSRF指的是攻擊者盜用了你的身份,以你的名義傳送惡意的請求,給你造成個人隱私洩露及財產安全.        CSRF攻擊的原理:        ①使用者正常登入A銀行網站

XSS和CSRF原理防禦

XSS是跨站指令碼攻擊,是一種常見的web應用程式中的電腦保安漏洞,xss通過使用者端注入惡意的可執行指令碼,若伺服器對使用者輸入不進行處理,直接將使用者的輸入輸出到瀏覽器,然後瀏覽器將會執行注入的指令碼;可以直接寫一個可執行指令碼,也可以直接寫html,在標籤裡面寫一個惡意

csrf攻擊原理防備

1,csrf(cross-site request forgery),跨站點偽造請求; 是 受害者使用者 登入訪問 可信任網站A,在沒有退出的情況下,又訪問量 不可信任惡意網站B,網站B盜用使用者身份,發出惡意請求; 站外本質:提交伺服器外部資料問題; 站內本質:伺服器內

詳解XSS跨站指令碼攻擊原理防禦

比較常見的一種場景就是,黑客寫下一篇包含有惡意JavaScript程式碼的部落格文章,文章發表後,所有訪問該部落格文章的使用者,都會在他們的瀏覽器中執行這段惡意的Javascript程式碼。黑客把惡意的指令碼儲存到伺服器端,所以這種XSS攻擊叫做“儲存型XSS”。也叫做“持久型XSS”,因為從效果上來說,它存

WEB攻擊手段防禦第3篇-CSRF

  概念 CSRF全稱即Cross Site Request forgery,跨站點請求偽造,攻擊者通過跨站點進行偽造使用者的請求進行合法的非法操作,其攻擊手法是通過竊取使用者cookie或伺服器session獲取使用者身份,在使用者不知情的情況下在攻擊者伺服器

跨站指令碼攻擊(XSS) 漏洞原理防禦方法

注:轉載請註明出自:https://blog.csdn.net/qq_36711453/article/details/83745195 XSS跨站指令碼攻擊:兩種情況。一種通過外部輸入然後直接在瀏覽器端觸發,即反射型XSS;還有一種則是先把利用程式碼儲存在資料庫或檔案中,當web程式讀取利用程

CSRF原理防禦 | 你想不想來一次CSRF攻擊

CSRF是Cross Site Request Forgery的縮寫,中文翻譯過來是跨站請求偽造。這個漏洞往往能給使用者帶來巨大的損失,CSRF在等保安全檢測中,也是一個非常重要的檢測項。但是在我們的網站中,大部分都沒有做CSRF的防禦,小夥伴們想不想來一次CSRF攻擊,體驗一下做黑客感覺?如果想要做黑客,可

CSRF攻擊原理

pos 隱式 因此 AS 服務 理論 隱私權 簡單 驗證機制 CSRF CSRF(Cross-site request forgery)跨站請求偽造,CSRF是一種夾持用戶在已經登陸的web應用程序上執行非本意的操作的攻擊方式。相比於XSS,CSRF是利用了系統對頁面瀏覽

XSS 漏洞原理防禦方法

正則表達 內容 規則 分享 保存 名單 nbsp 只需要 服務 XSS跨站腳本攻擊:兩種情況。一種通過外部輸入然後直接在瀏覽器端觸發,即反射型XSS;還有一種則是先把利用代碼保存在數據庫或文件中,當web程序讀取利用代碼並輸出在頁面上時觸發漏洞,即存儲型XSS。 危害:前端

WEB攻擊手段防禦第1篇-XSS

  概念 XSS全稱為Cross Site Script,即跨站點指令碼攻擊,XSS攻擊是最為普遍且中招率最多的web攻擊方式,一般攻擊者通過在網頁惡意植入攻擊指令碼來篡改網頁,在使用者瀏覽網頁時就能執行惡意的操作,像html、css、img都有可能被攻擊。

CC攻擊原理防範方法和如何防範CC攻擊 如何防範CC攻擊

一、 CC攻擊的原理:    CC攻擊的原理就是攻擊者控制某些主機不停地發大量資料包給對方伺服器造成伺服器資源耗盡,一直到宕機崩潰。CC主要是用來消耗伺服器資源的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候,開啟網頁就慢了,CC就是模擬多個使用者(多少執行緒就是多少使用者)不停地進行訪

php XSS攻擊原理防禦

資料安全是軟體設計中要考慮的問題,在程式中保持資料的安全,除了保證程式碼內部執行的可靠,最主要就是嚴格控制外部資料,秉持一切使用者輸入的都是不可靠的原則,做好資料的驗證和過濾. PHP最簡單的過濾機制就是轉義,對使用者的輸入和輸出進行轉義和過濾. 我們先搞一

常見拒絕服務型攻擊原理行為特徵

拒絕服務型攻擊: 拒絕服務攻擊即攻擊者想辦法讓目標機器停止提供服務或資源訪問,是黑客常用的攻擊手段之一。這些資源包括磁碟空間、記憶體、程序甚至網路頻寬,從而阻止正常使用者的訪問。其實對網路頻寬進行的消耗性攻擊只是拒絕服務攻擊的一小部分,只要能夠對目標造成麻煩,使某些服務被暫

常用網站攻擊手段防禦方法

常見的攻擊手段--XSS    XSS攻擊的全稱是跨站指令碼攻擊(Cross Site Scripting),為不跟層疊樣式表(Cascading Style Sheets,CSS)的縮寫混淆,故將跨

CSRF攻擊簡介防護方法

簡介: 跨站請求偽造(英語:Cross-site request forgery),也被稱為 one-click attack 或者 session riding,通常縮寫為 CSRF 或者 XSRF, 是一種挾制使用者在當前已登入的Web應用程式上執行非本意

sql注入攻擊原理攻防

隨著B/S模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於這個行業的入門門檻不高,程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫查詢

DDoS攻擊原理防護方法論(5)--UDP FLOOD攻擊

3.3 UDP Flood攻擊 3.3.1 原理     UDP Flood是日漸猖厥的流量型DoS攻擊,原理也很簡單。常見的情況是利用大量UDP小包衝擊DNS伺服器或Radius認證伺服器、流媒體視訊伺服器。 100k pps的UDP Flood經常將線路上的骨幹裝置例如防