什麼是csrf攻擊?如何防止它們?

為了防止您在CSRF攻擊中丟失現金和憑據,開發人員和使用者都可以發揮作用。...

跨站點請求偽造(CSRF)是利用網站漏洞的最古老方法之一。它針對通常需要登入等身份驗證的伺服器端web交換機。在CSRF攻擊過程中,攻擊者的目標是強迫其受害者代表他們發出未經授權的惡意web請求。

What's a CSRF attack and how can you prevent it-Featured

弱或差的網站安全實踐和使用者路徑上的疏忽是成功的CSRF攻擊的一些常見原因。

讓我們看看什麼是CSRF攻擊,以及作為一個開發人員或使用者,您可以採取哪些可能的方法來阻止它。

csrf攻擊對您有何影響?

CSRF是一種攻擊,用於在需要使用者登入或身份驗證的web操作期間實現未經授權的請求。CSRF攻擊可以利用會話ID、Cookie以及其他基於伺服器的漏洞竊取使用者的憑據。

例如,啟用反CSRF過程可防止跨域惡意互動。

一旦這個障礙被打破,攻擊者就可以透過使用者瀏覽器建立的cookies快速利用使用者的會話ID,並在易受攻擊的網站中嵌入指令碼標記。

透過操縱ID,攻擊者還可以將訪問者重定向到另一個網頁,或利用電子郵件等社會工程方法傳送連結,鼓勵受害者下載惡意軟體。

一旦受害者執行了這樣的操作,它就會向用戶的服務頁面傳送一個HTTP請求,並授權該請求操作以支援攻擊者。這對一個毫無戒心的使用者來說是毀滅性的。

成功的CSRF攻擊可使授權使用者丟失其訪問憑據,尤其是在基於伺服器的操作(如密碼或使用者名稱更改請求)期間。在更糟糕的情況下,攻擊者接管整個會話並代表使用者進行操作。

CSRF被用來劫持網上基金交易以及更改使用者名稱和密碼,從而導致使用者無法訪問受影響的服務。

攻擊者如何利用csrf劫持會話:示例

CSRF攻擊的主要目標是涉及使用者身份驗證的web操作。為了成功,它需要受害者的無意行為。

在CSRF攻擊期間,GET、DELETE和PUT操作以及易受攻擊的POST請求是攻擊者的主要目標。

讓我們看看這些術語的含義:

  • GET:從資料庫中收集結果的請求;例如,Google search。
  • POST:通常用於透過web表單提交請求。POST請求在使用者註冊或登入期間很常見,也就是所謂的身份驗證。
  • 刪除:從資料庫中刪除資源。每當您從特定的web服務中刪除您的帳戶時,都會執行此操作。
  • PUT:PUT請求修改或更新現有資源。一個例子是改變你的Facebook名字。

實際上,攻擊者使用會話劫持來備份CSRF攻擊。使用此組合時,攻擊者可以使用劫持來更改受害者的IP地址。

然後,IP地址的更改將受害者登入到一個新網站,攻擊者在該網站中**了一個欺騙連結,該連結提交了他們透過CSRF建立的複製表單或修改的伺服器請求。

然後,一個不知情的使用者認為重定向來自服務提供商,並單擊攻擊者網頁上的連結。一旦他們做到了這一點,駭客提交了一個網頁載入的形式,他們不知道。

get請求csrf攻擊示例

想象一下,試圖透過一個不安全的電子商務平臺進行線上支付。平臺所有者使用GET請求來處理您的事務。GET查詢可能如下所示:

https://websiteurl/pay?amount=$10&company=[company ABC's account]

劫持者可以透過更改GET請求的引數輕鬆地竊取您的事務。要做到這一點,他們需要做的就是用你的名字換他們的名字,更糟糕的是,改變你打算支付的金額。然後將原始查詢調整為如下內容:

https://websiteurl/pay?amount=$20000&company=[attacker's account]

一旦您單擊指向修改後的GET請求的連結,您就會無意中轉移到攻擊者的帳戶。

透過GET請求進行事務處理是一種不好的做法,使活動容易受到攻擊。

請求後csrf攻擊示例

然而,許多開發人員認為使用POST請求進行web事務更安全。雖然這是事實,但不幸的是,POST請求也容易受到CSRF攻擊。

要成功劫持POST請求,攻擊者只需要您當前的會話ID、一些複製的不可見表單,有時還需要一些社會工程。

例如,POST請求表單可能如下所示:

<form action="Company ABC's account" method="POST"><input type="text" name="name" placeholder="name"><br><input type="number" name="amount"><br><input type="submit" name="submit"></form>

但是,攻擊者可以透過建立新頁面並將上面的表單修改為以下內容來交換您的憑據:

<body onload="document.getElementById('payment-form').submit();"><form action="Attacker's account" id="payment-form" method="POST"><input type="text" hidden name="name" placeholder="name"><br><input type="number" hidden value=30000 name="amount"><br><input type="submit" hidden name="submit"></form></body>

在**縱的表單中,攻擊者將amount欄位的值設定為“30000”,將收件人的帳號替換為他們的帳號,在頁面載入時提交表單,還對使用者隱藏表單欄位。

一旦他們劫持了當前會話,您的事務頁面就會重定向到攻擊者的頁面,從而提示您單擊他們知道您最有可能訪問的連結。

單擊此按鈕將載入複製表單的提交,從而將您的資金轉移到攻擊者的帳戶中。這意味著您不需要單擊“send”之類的按鈕來進行事務,因為JavaScript在載入下一個網頁時會自動執行此操作。

或者,攻擊者還可以起草一封嵌入HTML的電子郵件,提示您單擊連結以執行相同的頁面載入表單提交。

另一個易受CSRF攻擊的操作是使用者名稱或密碼更改,例如PUT請求。攻擊者複製您的請求表單並用他們的電子郵件地址替換您的電子郵件地址。

然後他們竊取你的會話,或者將你重定向到一個頁面,或者給你傳送一封電子郵件,提示你點選一個吸引人的連結。

然後提交一個**縱的表單,將密碼重置連結傳送到駭客的電子郵件地址,而不是你的。這樣,駭客就會更改你的密碼,並將你從帳戶中登出。

作為開發人員如何防止csrf攻擊

How to prevent yourself against a CSRF attack

防止CSRF的最佳方法之一是使用頻繁更改的令牌,而不是依賴會話cookie在伺服器上執行狀態更改。

相關:免費指南,瞭解數字安全和保護您的隱私

許多現代後端框架提供了針對CSRF的安全性。因此,如果您想避免自己增強CSRF的技術性問題,您可以透過使用內建反CSRF令牌的伺服器端框架輕鬆解決。

當您使用反CSRF令牌時,基於伺服器的請求會生成隨機字串,而不是更易受靜態攻擊的會話cookie。這樣,就可以保護會話不被劫持者猜到。

在web應用程式上實現雙因素身份驗證(2FA)系統來執行事務也可以降低CSRF的可能性。

可以透過跨站點指令碼(XSS)啟動CSRF,這涉及到向用戶欄位(如註釋表單)注入指令碼。為了防止這種情況,最好在網站的所有使用者表單欄位中啟用HTML自動轉義。該操作阻止表單欄位解釋HTML元素。

如何以使用者身份防止csrf攻擊

作為一個涉及身份驗證的web服務的使用者,您可以在防止攻擊者透過CSRF竊取您的憑據和會話方面發揮作用。

確保在涉及資金轉移的活動中使用可信的web服務。

除此之外,還應使用安全的web瀏覽器來保護使用者不受會話暴露的影響,並使用安全的搜尋引擎來防止搜尋資料洩漏。

相關:最好的私人搜尋引擎,尊重您的資料

作為一個使用者,您還可以依賴第三方身份驗證器(如googleauthenticator)或其替代品透過web驗證您的身份。

儘管您可能覺得無法阻止攻擊者劫持您的會話,但您仍然可以透過確保瀏覽器不儲存密碼和其他登入詳細資訊等資訊來幫助防止這種情況。

加強你的網路安全

開發人員需要在開發和部署期間定期測試web應用的安全漏洞。

但是,在試圖阻止其他漏洞的同時引入其他漏洞是很常見的。因此,在試圖阻止CSRF時,要小心確保沒有違反其他安全引數。

  • 發表於 2021-03-29 05:49
  • 閱讀 ( 48 )
  • 分類:安全

你可能感興趣的文章

xss公司(xss)和csrf公司(csrf)的區別

...威脅。其中兩個是XSS和CSRF。 目錄 1. 概述和主要區別 2. 什麼是XSS 3. 什麼是CSRF 4. 並列比較——XSS與CSRF的表格形式 5. 摘要 什麼是xss公司(xss)? XSS是一種向網站注入惡意程式碼的程式碼注入攻擊。這是最常見的網站攻擊之一。它...

  • 發佈於 2020-10-18 08:51
  • 閲讀 ( 71 )

什麼是埠掃描?它是如何工作的?

...工作。網路管理員和駭客都熱衷於掃描這些埠的弱點,但什麼是埠,人們為什麼要掃描它們? ...

  • 發佈於 2021-03-11 09:00
  • 閲讀 ( 51 )

小心廣告軟體:它是什麼和7種方法來保持安全

...廣告一樣,廣告軟體也會成為阻礙。在本文中,您將瞭解什麼是廣告軟體、廣告軟體的型別、廣告軟體的工作原理、如何識別廣告軟體活動、廣告軟體刪除以及如何防止廣告軟體攻擊。什麼是廣告軟體(adware)?廣告軟體是廣告和...

  • 發佈於 2021-03-11 09:30
  • 閲讀 ( 75 )

什麼是資料洩露?您如何保護自己?

... 那麼什麼是資料洩露呢?這就是我們將在下面解釋的內容,以及如何保護自己免受未來違規行為的建議。 ...

  • 發佈於 2021-03-18 16:20
  • 閲讀 ( 47 )

什麼是hsts,它如何保護https免受駭客攻擊?

... 什麼是HSTS,它如何幫助您的網站保持安全? ...

  • 發佈於 2021-03-22 16:41
  • 閲讀 ( 49 )

什麼是mylobot惡意軟體?它是如何工作的,該怎麼辦

... 什麼是微型機器人(mylobot)? ...

  • 發佈於 2021-03-24 09:02
  • 閲讀 ( 87 )

什麼是mta sts?它如何保護您的電子郵件?

... mta sts可以減輕什麼型別的攻擊? ...

  • 發佈於 2021-03-26 13:46
  • 閲讀 ( 62 )

什麼是零日攻擊?攻擊是如何工作的?

... 話雖如此,什麼是零日攻擊,為什麼保持軟體更新如此重要? ...

  • 發佈於 2021-03-26 16:55
  • 閲讀 ( 45 )

關於maze勒索軟體攻擊你需要知道什麼

... 什麼是迷宮式贖金器(the maze ransomware)? ...

  • 發佈於 2021-03-26 17:37
  • 閲讀 ( 43 )

藍芽能被入侵嗎?保持藍芽安全的7個技巧

... 什麼是藍本(blueborne)? ...

  • 發佈於 2021-03-28 00:21
  • 閲讀 ( 74 )
godefa
godefa

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦