国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

20170813-CSRF 跨站請求偽造

missonce / 830人閱讀

摘要:是的縮寫,翻譯過來就是跨站請求偽造。要抵御,關鍵在于在請求中放入黑客無法偽造的信息。通過這個類,可以一次性給所有該類請求加上這個頭屬性,并把值放入其中。參考對跨站請求偽造的理解淺談攻擊方式跨站腳本攻擊與跨站請求偽造攻擊的學習總結。

CSRF

CSRF是Cross Site Request Forgery的縮寫,翻譯過來就是跨站請求偽造。

跨站:顧名思義,就是從一個網站到另一個網站。

請求:即HTTP請求。

偽造:在這里可以理解為仿造、偽裝。

綜合起來的意思就是:從一個網站A中發起一個到網站B的請求,而這個請求是經過了偽裝的,偽裝操作達到的目的就是讓請求看起來像是從網站B中發起的,也就是說,讓B網站所在的服務器端誤以為該請求是從自己網站發起的,而不是從A網站發起的。

CSRF 攻擊是黑客借助受害者的 cookie 騙取服務器的信任,但是黑客并不能拿到 cookie,也看不到 cookie 的內容。另外,對于服務器返回的結果,由于瀏覽器同源策略的限制,黑客也無法進行解析。因此,黑客無法從返回的結果中得到任何東西,他所能做的就是給服務器發送請求,以執行請求中所描述的命令,在服務器端直接改變數據的值,而非竊取服務器中的數據。所以,我們要保護的對象是那些可以直接產生數據改變的服務,而對于讀取數據的服務,則不需要進行 CSRF 的保護。

原理

圖片來源: CSRF攻擊原理以及nodejs的實現和防御

 從上圖可以看出,要偽裝成從A網站發起請求,必須依次完成兩個步驟:

  1.登錄受信任網站A,并在本地生成Cookie。

  2.在不登出A的情況下,訪問危險網站B。
  

之所以要偽裝成從A網站發起,是因為Cookie是不能跨域發送的。結合上面這個例子來說就是:如果從A網站直接發送請求到B網站服務器的話,是無法將A網站中產生的Cookie一起發給B服務器的。

為什么要發送Cookie呢?這是因為服務器在用戶登錄后會將用戶的一些信息放到Cookie中返回給客戶端,然后客戶端在請求一些需要認證的資源的時候會把Cookie一起發給服務器,服務器通過讀取Cookie中的信息來進行用戶認證,認證通過后才會做出正確的響應。

B網站訪問A網站服務器的一些需要認證的資源的時候,如果沒有Cookie信息,服務器是拒絕訪問的,那么B網站就無法進行惡意操作。而偽造成AB網站的請求,就可以將A網站的Cookie一起發到A服務器,這個時候就服務器就認為該請求是合法的,就會給出正確的響應,這個時候,B網站就達到目的了。

危害

攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF能夠做的事情包括:以你名義發送郵件,發消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉賬......造成的問題包括:個人隱私泄露以及財產安全。

如何防止CSRF攻擊

CSRF攻擊之所以能夠成功,是因為黑客可以完全偽造用戶請求,該請求中所有的用戶驗證信息都是存在于cookie中,因此黑客可以在不知道這些驗證信息的情況下直接利用用戶的cookie來通過安全驗證。要抵御CSRF,關鍵在于在請求中放入黑客無法偽造的信息。

對于關鍵操作使用post方法:

現在的瀏覽器出于安全考慮,默認都做了一定的限制,form標簽發送到其他網站的請求會被攔截

使用驗證碼:

強制用戶必須與應用進行交互,才能完成最終的請求。例如:用戶的每次提交表單行為都需要填寫一個驗證碼

在請求地址中添加token并驗證 Anti CSRF Token

服務端在收到路由請求時,生成一個隨機數,在渲染請求頁面時把隨機數埋入頁面(一般埋入 form 表單內,

服務端設置setCookie,把該隨機數作為cookie或者session種入用戶瀏覽器

當用戶發送 GET 或者 POST 請求時帶上_csrf_token參數(對于 Form 表單直接提交即可,因為會自動把當前表單內所有的 input 提交給后臺,包括_csrf_token)

后臺在接受到請求后解析請求的cookie獲取_csrf_token的值,然后和用戶請求提交的_csrf_token做個比較,如果相等表示請求是合法的。

注意:

Token 最好保存在 Session 中。假如 Token 保存在 Cookie 中,用戶瀏覽器開了很多頁面(同一頁面打開了多次)。在一些頁面 Token 被使用消耗掉后新的Token 會被重新種入,但那些老的 Tab 頁面對應的 HTML 里還是老 Token。這會讓用戶覺得為啥幾分鐘前打開的頁面不能正常提交

盡量少用 GET。假如攻擊者在我們的網站上傳了一張圖片,用戶在加載圖片的時候實際上是向攻擊者的服務器發送了請求,這個請求會帶有referer表示當前圖片所在的頁面的 url。 而如果使用 GET 方式接口的話這個 URL 就形如:
https://xxxx.com/gift?giftId=...

,那相當于攻擊者就獲取了_csrf_token,短時間內可以使用這個 token 來操作其他 GET 接口。

由于用戶的Cookie很容易由于網站的XSS漏洞而被盜取,所以這個方案必須要在沒有XSS的情況下才安全。

檢測Referer:

Referer,根據 HTTP 協議,在 HTTP 頭中有一個字段叫 Referer,它記錄了該HTTP請求的來源地址。服務器通過檢查Referer的值,如果判斷
出Referer并非本站頁面,而是一個外部站點的頁面,那么我們就可以判斷出這個請求是非法的

這個方法是實現防止圖片盜鏈的原理

優點:這種方法的顯而易見的好處就是簡單易行,網站的普通開發人員不需要操心 CSRF 的漏洞,只需要在最后給所有安全敏感的請求統一增加一個攔截器來檢查 Referer 的值就可以。特別是對于當前現有的系統,不需要改變當前系統的任何已有代碼和邏輯,沒有風險,非常便捷。

缺點:Referer 的值是由瀏覽器提供的,雖然 HTTP 協議上有明確的要求,但是每個瀏覽器對于 Referer 的具體實現可能有差別,并不能保證瀏覽器自身沒有安全漏洞。使用驗證 Referer 值的方法,就是把安全性都依賴于第三方(即瀏覽器)來保障,從理論上來講,這樣并不安全。對于某些低版本瀏覽器,目前已經有一些方法可以篡改 Referer 值

在HTTP頭中自定義屬性

這種方法也是使用token并進行驗證,和上一種方法不同的是,這里并不是把 token 以參數的形式置于 HTTP 請求之中,而是把它放到 HTTP 頭中自定義的屬性里。通過 XMLHttpRequest 這個類,可以一次性給所有該類請求加上 csrftoken 這個 HTTP 頭屬性,并把 token 值放入其中。

參考:

對CSRF(跨站請求偽造)的理解

淺談CSRF攻擊方式

XSS跨站腳本攻擊與CSRF跨站請求偽造攻擊的學習總結。

CSRF攻擊原理以及nodejs的實現和防御

CSRF 攻擊的應對之道

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54416.html

相關文章

  • 程序猿必讀-防范CSRF跨站請求偽造

    摘要:,中文為跨站請求偽造是一種利用網站可信用戶的權限去執行未授權的命令的一種惡意攻擊。防范技術令牌同步模式,簡稱是在用戶請求的頁面中的所有表單中嵌入一個,在服務端驗證這個的技術。 showImg(https://segmentfault.com/img/remote/1460000008505619); CSRF(Cross-site request forgery,中文為跨站請求偽造)是...

    wangtdgoodluck 評論0 收藏0
  • 程序猿必讀-防范CSRF跨站請求偽造

    摘要:,中文為跨站請求偽造是一種利用網站可信用戶的權限去執行未授權的命令的一種惡意攻擊。防范技術令牌同步模式,簡稱是在用戶請求的頁面中的所有表單中嵌入一個,在服務端驗證這個的技術。 showImg(https://segmentfault.com/img/remote/1460000008505619); CSRF(Cross-site request forgery,中文為跨站請求偽造)是...

    baishancloud 評論0 收藏0
  • XSS 和 CSRF 兩種跨站攻擊

    摘要:請求偽造在跨站攻擊中,攻擊者需要獲得受害者的會話令牌,請求偽造也與會話劫持相關,但是攻擊者不需要知道受害者的會話令牌,就能夠行駛受害者的權利。 差不多剛開始接觸前端的時候,經常能看到一些早幾年入行大牛們的簡歷,幾乎所有人都會在簡歷中帶上這么一句話:具備基本的 Web 安全知識(XSS / CSRF)。顯然這已經成為前端人員的必備知識。 showImg(https://segmentfa...

    GHOST_349178 評論0 收藏0
  • 用大白話談談XSS與CSRF

    摘要:它允許惡意用戶將代碼注入到網頁上,其他用戶在觀看網頁時就會受到影響。這類攻擊通常包含了以及用戶端腳本語言。更偏向于方法論,更偏向于一種形式,只要是偽造用戶發起的請求,都可成為攻擊。 這兩個關鍵詞也是老生常談了,但是還總是容易讓人忘記與搞混~。XSS與CSRF這兩個關鍵詞時常被拉出來一起比較(尤其是面試),我在這里也在寫一篇掃盲文,也幫自己整理一下知識脈絡。 這篇文章會用盡量人話的語言解...

    Yumenokanata 評論0 收藏0
  • 用大白話談談XSS與CSRF

    摘要:它允許惡意用戶將代碼注入到網頁上,其他用戶在觀看網頁時就會受到影響。這類攻擊通常包含了以及用戶端腳本語言。更偏向于方法論,更偏向于一種形式,只要是偽造用戶發起的請求,都可成為攻擊。 這兩個關鍵詞也是老生常談了,但是還總是容易讓人忘記與搞混~。XSS與CSRF這兩個關鍵詞時常被拉出來一起比較(尤其是面試),我在這里也在寫一篇掃盲文,也幫自己整理一下知識脈絡。 這篇文章會用盡量人話的語言解...

    wawor4827 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<