日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端安全系列(二):如何防止CSRF攻击?

發布時間:2024/7/5 HTML 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端安全系列(二):如何防止CSRF攻击? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

隨著互聯網的高速發展,信息安全問題已經成為企業最為關注的焦點之一,而前端又是引發企業安全問題的高危據點。在移動互聯網時代,前端人員除了傳統的 XSS、CSRF 等安全問題之外,又時常遭遇網絡劫持、非法調用 Hybrid API 等新型安全問題。當然,瀏覽器自身也在不斷在進化和發展,不斷引入 CSP、Same-Site Cookies 等新技術來增強安全性,但是仍存在很多潛在的威脅,這需要前端技術人員不斷進行“查漏補缺”。

前端安全

近幾年,美團業務高速發展,前端隨之面臨很多安全挑戰,因此積累了大量的實踐經驗。我們梳理了常見的前端安全問題以及對應的解決方案,將會做成一個系列,希望可以幫助前端同學在日常開發中不斷預防和修復安全漏洞。本文是該系列的第二篇。

今天我們講解一下 CSRF,其實相比XSS,CSRF的名氣似乎并不是那么大,很多人都認為“CSRF不具備那么大的破壞性”。真的是這樣嗎?接下來,我們還是有請小明同學再次“閃亮”登場。

CSRF攻擊

CSRF漏洞的發生

相比XSS,CSRF的名氣似乎并不是那么大,很多人都認為CSRF“不那么有破壞性”。真的是這樣嗎?

接下來有請小明出場~~

小明的悲慘遭遇

這一天,小明同學百無聊賴地刷著Gmail郵件。大部分都是沒營養的通知、驗證碼、聊天記錄之類。但有一封郵件引起了小明的注意:

甩賣比特幣,一個只要998!!

聰明的小明當然知道這種肯定是騙子,但還是抱著好奇的態度點了進去(請勿模仿)。果然,這只是一個什么都沒有的空白頁面,小明失望的關閉了頁面。一切似乎什么都沒有發生……

在這平靜的外表之下,黑客的攻擊已然得手。小明的Gmail中,被偷偷設置了一個過濾規則,這個規則使得所有的郵件都會被自動轉發到hacker@hackermail.com。小明還在繼續刷著郵件,殊不知他的郵件正在一封封地,如脫韁的野馬一般地,持續不斷地向著黑客的郵箱轉發而去。

不久之后的一天,小明發現自己的域名已經被轉讓了。懵懂的小明以為是域名到期自己忘了續費,直到有一天,對方開出了 $650 的贖回價碼,小明才開始覺得不太對勁。

小明仔細查了下域名的轉讓,對方是擁有自己的驗證碼的,而域名的驗證碼只存在于自己的郵箱里面。小明回想起那天奇怪的鏈接,打開后重新查看了“空白頁”的源碼:

<form method="POST" action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf" enctype="multipart/form-data"> <input type="hidden" name="cf2_emc" value="true"/> <input type="hidden" name="cf2_email" value="hacker@hakermail.com"/> .....<input type="hidden" name="irf" value="on"/> <input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> </form> <script> document.forms[0].submit(); </script>

這個頁面只要打開,就會向Gmail發送一個post請求。請求中,執行了“Create Filter”命令,將所有的郵件,轉發到“hacker@hackermail.com”。

小明由于剛剛就登陸了Gmail,所以這個請求發送時,攜帶著小明的登錄憑證(Cookie),Gmail的后臺接收到請求,驗證了確實有小明的登錄憑證,于是成功給小明配置了過濾器。

黑客可以查看小明的所有郵件,包括郵件里的域名驗證碼等隱私信息。拿到驗證碼之后,黑客就可以要求域名服務商把域名重置給自己。

小明很快打開Gmail,找到了那條過濾器,將其刪除。然而,已經泄露的郵件,已經被轉讓的域名,再也無法挽回了……

以上就是小明的悲慘遭遇。而“點開一個黑客的鏈接,所有郵件都被竊取”這種事情并不是杜撰的,此事件原型是2007年Gmail的CSRF漏洞:

https://www.davidairey.com/google-Gmail-security-hijack/

當然,目前此漏洞已被Gmail修復,請使用Gmail的同學不要慌張。

什么是CSRF

CSRF(Cross-site request forgery)跨站請求偽造:攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站發送跨站請求。利用受害者在被攻擊網站已經獲取的注冊憑證,繞過后臺的用戶驗證,達到冒充用戶對被攻擊的網站執行某項操作的目的。

一個典型的CSRF攻擊有著如下的流程:

  • 受害者登錄a.com,并保留了登錄憑證(Cookie)。
  • 攻擊者引誘受害者訪問了b.com。
  • b.com 向 a.com 發送了一個請求:a.com/act=xx。瀏覽器會默認攜帶a.com的Cookie。
  • a.com接收到請求后,對請求進行驗證,并確認是受害者的憑證,誤以為是受害者自己發送的請求。
  • a.com以受害者的名義執行了act=xx。
  • 攻擊完成,攻擊者在受害者不知情的情況下,冒充受害者,讓a.com執行了自己定義的操作。

幾種常見的攻擊類型

GET類型的CSRF

GET類型的CSRF利用非常簡單,只需要一個HTTP請求,一般會這樣利用:

![](https://awps-assets.meituan.net/mit-x/blog-images-bundle-2018b/ff0cdbee.example/withdraw?amount=10000&for=hacker)

在受害者訪問含有這個img的頁面后,瀏覽器會自動向http://bank.example/withdraw?account=xiaoming&amount=10000&for=hacker發出一次HTTP請求。bank.example就會收到包含受害者登錄信息的一次跨域請求。

POST類型的CSRF

這種類型的CSRF利用起來通常使用的是一個自動提交的表單,如:

<form action="http://bank.example/withdraw" method=POST><input type="hidden" name="account" value="xiaoming" /><input type="hidden" name="amount" value="10000" /><input type="hidden" name="for" value="hacker" /> </form> <script> document.forms[0].submit(); </script>

訪問該頁面后,表單會自動提交,相當于模擬用戶完成了一次POST操作。

POST類型的攻擊通常比GET要求更加嚴格一點,但仍并不復雜。任何個人網站、博客,被黑客上傳頁面的網站都有可能是發起攻擊的來源,后端接口不能將安全寄托在僅允許POST上面。

鏈接類型的CSRF

鏈接類型的CSRF并不常見,比起其他兩種用戶打開頁面就中招的情況,這種需要用戶點擊鏈接才會觸發。這種類型通常是在論壇中發布的圖片中嵌入惡意鏈接,或者以廣告的形式誘導用戶中招,攻擊者通常會以比較夸張的詞語誘騙用戶點擊,例如:

<a href="http://test.com/csrf/withdraw.php?amount=1000&for=hacker" taget="_blank">重磅消息!!<a/>

由于之前用戶登錄了信任的網站A,并且保存登錄狀態,只要用戶主動訪問上面的這個PHP頁面,則表示攻擊成功。

CSRF的特點

  • 攻擊一般發起在第三方網站,而不是被攻擊的網站。被攻擊的網站無法防止攻擊發生。
  • 攻擊利用受害者在被攻擊網站的登錄憑證,冒充受害者提交操作;而不是直接竊取數據。
  • 整個過程攻擊者并不能獲取到受害者的登錄憑證,僅僅是“冒用”。
  • 跨站請求可以用各種方式:圖片URL、超鏈接、CORS、Form提交等等。部分請求方式可以直接嵌入在第三方論壇、文章中,難以進行追蹤。

CSRF通常是跨域的,因為外域通常更容易被攻擊者掌控。但是如果本域下有容易被利用的功能,比如可以發圖和鏈接的論壇和評論區,攻擊可以直接在本域下進行,而且這種攻擊更加危險。

防護策略

CSRF通常從第三方網站發起,被攻擊的網站無法防止攻擊發生,只能通過增強自己網站針對CSRF的防護能力來提升安全性。

上文中講了CSRF的兩個特點:

  • CSRF(通常)發生在第三方域名。
  • CSRF攻擊者不能獲取到Cookie等信息,只是使用。

針對這兩點,我們可以專門制定防護策略,如下:

  • 阻止不明外域的訪問
    • 同源檢測
    • Samesite Cookie
  • 提交時要求附加本域才能獲取的信息
    • CSRF Token
    • 雙重Cookie驗證

以下我們對各種防護方法做詳細說明。

同源檢測

既然CSRF大多來自第三方網站,那么我們就直接禁止外域(或者不受信任的域名)對我們發起請求。

那么問題來了,我們如何判斷請求是否來自外域呢?

在HTTP協議中,每一個異步請求都會攜帶兩個Header,用于標記來源域名:

  • Origin Header
  • Referer Header

這兩個Header在瀏覽器發起請求時,大多數情況會自動帶上,并且不能由前端自定義內容。 服務器可以通過解析這兩個Header中的域名,確定請求的來源域。

使用Origin Header確定來源域名

在部分與CSRF有關的請求中,請求的Header中會攜帶Origin字段。字段內包含請求的域名(不包含path及query)。

如果Origin存在,那么直接使用Origin中的字段確認來源域名就可以。

但是Origin在以下兩種情況下并不存在:

  • IE11同源策略: IE 11 不會在跨站CORS請求上添加Origin標頭,Referer頭將仍然是唯一的標識。最根本原因是因為IE 11對同源的定義和其他瀏覽器有不同,有兩個主要的區別,可以參考MDN Same-origin_policy#IE_Exceptions

  • 302重定向: 在302重定向之后Origin不包含在重定向的請求中,因為Origin可能會被認為是其他來源的敏感信息。對于302重定向的情況來說都是定向到新的服務器上的URL,因此瀏覽器不想將Origin泄漏到新的服務器上。

使用Referer Header確定來源域名

根據HTTP協議,在HTTP頭中有一個字段叫Referer,記錄了該HTTP請求的來源地址。 對于Ajax請求,圖片和script等資源請求,Referer為發起請求的頁面地址。對于頁面跳轉,Referer為打開頁面歷史記錄的前一個頁面地址。因此我們使用Referer中鏈接的Origin部分可以得知請求的來源域名。

這種方法并非萬無一失,Referer的值是由瀏覽器提供的,雖然HTTP協議上有明確的要求,但是每個瀏覽器對于Referer的具體實現可能有差別,并不能保證瀏覽器自身沒有安全漏洞。使用驗證 Referer 值的方法,就是把安全性都依賴于第三方(即瀏覽器)來保障,從理論上來講,這樣并不是很安全。在部分情況下,攻擊者可以隱藏,甚至修改自己請求的Referer。

2014年,W3C的Web應用安全工作組發布了Referrer Policy草案,對瀏覽器該如何發送Referer做了詳細的規定。截止現在新版瀏覽器大部分已經支持了這份草案,我們終于可以靈活地控制自己網站的Referer策略了。新版的Referrer Policy規定了五種Referer策略:No Referrer、No Referrer When Downgrade、Origin Only、Origin When Cross-origin、和 Unsafe URL。之前就存在的三種策略:never、default和always,在新標準里換了個名稱。他們的對應關系如下:

策略名稱屬性值(新)屬性值(舊)
No Referrerno-Referrernever
No Referrer When Downgradeno-Referrer-when-downgradedefault
Origin Only(same or strict) originorigin
Origin When Cross Origin(strict) origin-when-crossorigin-
Unsafe URLunsafe-urlalways

根據上面的表格因此需要把Referrer Policy的策略設置成same-origin,對于同源的鏈接和引用,會發送Referer,referer值為Host不帶Path;跨域訪問則不攜帶Referer。例如:aaa.com引用bbb.com的資源,不會發送Referer。

設置Referrer Policy的方法有三種:

  • 在CSP設置
  • 頁面頭部增加meta標簽
  • a標簽增加referrerpolicy屬性
  • 上面說的這些比較多,但我們可以知道一個問題:攻擊者可以在自己的請求中隱藏Referer。如果攻擊者將自己的請求這樣填寫:

    ![](https://awps-assets.meituan.net/mit-x/blog-images-bundle-2018b/ff0cdbee.example/withdraw?amount=10000&for=hacker)

    那么這個請求發起的攻擊將不攜帶Referer。

    另外在以下情況下Referer沒有或者不可信:

  • IE6、7下使用window.location.href=url進行界面的跳轉,會丟失Referer。
  • IE6、7下使用window.open,也會缺失Referer。
  • HTTPS頁面跳轉到HTTP頁面,所有瀏覽器Referer都丟失。
  • 點擊Flash上到達另外一個網站的時候,Referer的情況就比較雜亂,不太可信。
  • 無法確認來源域名情況

    當Origin和Referer頭文件不存在時該怎么辦?如果Origin和Referer都不存在,建議直接進行阻止,特別是如果您沒有使用隨機CSRF Token(參考下方)作為第二次檢查。

    如何阻止外域請求

    通過Header的驗證,我們可以知道發起請求的來源域名,這些來源域名可能是網站本域,或者子域名,或者有授權的第三方域名,又或者來自不可信的未知域名。

    我們已經知道了請求域名是否是來自不可信的域名,我們直接阻止掉這些的請求,就能防御CSRF攻擊了嗎?

    且慢!當一個請求是頁面請求(比如網站的主頁),而來源是搜索引擎的鏈接(例如百度的搜索結果),也會被當成疑似CSRF攻擊。所以在判斷的時候需要過濾掉頁面請求情況,通常Header符合以下情況:

    Accept: text/html Method: GET

    但相應的,頁面請求就暴露在了CSRF的攻擊范圍之中。如果你的網站中,在頁面的GET請求中對當前用戶做了什么操作的話,防范就失效了。

    例如,下面的頁面請求:

    GET https://example.com/addComment?comment=XXX&dest=orderId

    注:這種嚴格來說并不一定存在CSRF攻擊的風險,但仍然有很多網站經常把主文檔GET請求掛上參數來實現產品功能,但是這樣做對于自身來說是存在安全風險的。

    另外,前面說過,CSRF大多數情況下來自第三方域名,但并不能排除本域發起。如果攻擊者有權限在本域發布評論(含鏈接、圖片等,統稱UGC),那么它可以直接在本域發起攻擊,這種情況下同源策略無法達到防護的作用。

    綜上所述:同源驗證是一個相對簡單的防范方法,能夠防范絕大多數的CSRF攻擊。但這并不是萬無一失的,對于安全性要求較高,或者有較多用戶輸入內容的網站,我們就要對關鍵的接口做額外的防護措施。

    CSRF Token

    前面講到CSRF的另一個特征是,攻擊者無法直接竊取到用戶的信息(Cookie,Header,網站內容等),僅僅是冒用Cookie中的信息。

    而CSRF攻擊之所以能夠成功,是因為服務器誤把攻擊者發送的請求當成了用戶自己的請求。那么我們可以要求所有的用戶請求都攜帶一個CSRF攻擊者無法獲取到的Token。服務器通過校驗請求是否攜帶正確的Token,來把正常的請求和攻擊的請求區分開,也可以防范CSRF的攻擊。

    原理

    CSRF Token的防護策略分為三個步驟:

    1. 將CSRF Token輸出到頁面中

    首先,用戶打開頁面的時候,服務器需要給這個用戶生成一個Token,該Token通過加密算法對數據進行加密,一般Token都包括隨機字符串和時間戳的組合,顯然在提交時Token不能再放在Cookie中了,否則又會被攻擊者冒用。因此,為了安全起見Token最好還是存在服務器的Session中,之后在每次頁面加載時,使用JS遍歷整個DOM樹,對于DOM中所有的a和form標簽后加入Token。這樣可以解決大部分的請求,但是對于在頁面加載之后動態生成的HTML代碼,這種方法就沒有作用,還需要程序員在編碼時手動添加Token。

    2. 頁面提交的請求攜帶這個Token

    對于GET請求,Token將附在請求地址之后,這樣URL 就變成 http://url?csrftoken=tokenvalue。 而對于 POST 請求來說,要在 form 的最后加上:

    <input type=”hidden” name=”csrftoken” value=”tokenvalue”/>

    這樣,就把Token以參數的形式加入請求了。

    3. 服務器驗證Token是否正確

    當用戶從客戶端得到了Token,再次提交給服務器的時候,服務器需要判斷Token的有效性,驗證過程是先解密Token,對比加密字符串以及時間戳,如果加密字符串一致且時間未過期,那么這個Token就是有效的。

    這種方法要比之前檢查Referer或者Origin要安全一些,Token可以在產生并放于Session之中,然后在每次請求時把Token從Session中拿出,與請求中的Token進行比對,但這種方法的比較麻煩的在于如何把Token以參數的形式加入請求。

    下面將以Java為例,介紹一些CSRF Token的服務端校驗邏輯,代碼如下:

    HttpServletRequest req = (HttpServletRequest)request; HttpSession s = req.getSession(); // 從 session 中得到 csrftoken 屬性 String sToken = (String)s.getAttribute(“csrftoken”); if(sToken == null){ // 產生新的 token 放入 session 中sToken = generateToken(); s.setAttribute(“csrftoken”,sToken); chain.doFilter(request, response); } else{ // 從 HTTP 頭中取得 csrftoken String xhrToken = req.getHeader(“csrftoken”); // 從請求參數中取得 csrftoken String pToken = req.getParameter(“csrftoken”); if(sToken != null && xhrToken != null && sToken.equals(xhrToken)){ chain.doFilter(request, response); }else if(sToken != null && pToken != null && sToken.equals(pToken)){ chain.doFilter(request, response); }else{ request.getRequestDispatcher(“error.jsp”).forward(request,response); } }

    代碼源自IBM developerworks CSRF

    這個Token的值必須是隨機生成的,這樣它就不會被攻擊者猜到,考慮利用Java應用程序的java.security.SecureRandom類來生成足夠長的隨機標記,替代生成算法包括使用256位BASE64編碼哈希,選擇這種生成算法的開發人員必須確保在散列數據中使用隨機性和唯一性來生成隨機標識。通常,開發人員只需為當前會話生成一次Token。在初始生成此Token之后,該值將存儲在會話中,并用于每個后續請求,直到會話過期。當最終用戶發出請求時,服務器端必須驗證請求中Token的存在性和有效性,與會話中找到的Token相比較。如果在請求中找不到Token,或者提供的值與會話中的值不匹配,則應中止請求,應重置Token并將事件記錄為正在進行的潛在CSRF攻擊。

    分布式校驗

    在大型網站中,使用Session存儲CSRF Token會帶來很大的壓力。訪問單臺服務器session是同一個。但是現在的大型網站中,我們的服務器通常不止一臺,可能是幾十臺甚至幾百臺之多,甚至多個機房都可能在不同的省份,用戶發起的HTTP請求通常要經過像Ngnix之類的負載均衡器之后,再路由到具體的服務器上,由于Session默認存儲在單機服務器內存中,因此在分布式環境下同一個用戶發送的多次HTTP請求可能會先后落到不同的服務器上,導致后面發起的HTTP請求無法拿到之前的HTTP請求存儲在服務器中的Session數據,從而使得Session機制在分布式環境下失效,因此在分布式集群中CSRF Token需要存儲在Redis之類的公共存儲空間。

    由于使用Session存儲,讀取和驗證CSRF Token會引起比較大的復雜度和性能問題,目前很多網站采用Encrypted Token Pattern方式。這種方法的Token是一個計算出來的結果,而非隨機生成的字符串。這樣在校驗時無需再去讀取存儲的Token,只用再次計算一次即可。

    這種Token的值通常是使用UserID、時間戳和隨機數,通過加密的方法生成。這樣既可以保證分布式服務的Token一致,又能保證Token不容易被破解。

    在token解密成功之后,服務器可以訪問解析值,Token中包含的UserID和時間戳將會被拿來被驗證有效性,將UserID與當前登錄的UserID進行比較,并將時間戳與當前時間進行比較。

    總結

    Token是一個比較有效的CSRF防護方法,只要頁面沒有XSS漏洞泄露Token,那么接口的CSRF攻擊就無法成功。

    但是此方法的實現比較復雜,需要給每一個頁面都寫入Token(前端無法使用純靜態頁面),每一個Form及Ajax請求都攜帶這個Token,后端對每一個接口都進行校驗,并保證頁面Token及請求Token一致。這就使得這個防護策略不能在通用的攔截上統一攔截處理,而需要每一個頁面和接口都添加對應的輸出和校驗。這種方法工作量巨大,且有可能遺漏。

    驗證碼和密碼其實也可以起到CSRF Token的作用哦,而且更安全。

    為什么很多銀行等網站會要求已經登錄的用戶在轉賬時再次輸入密碼,現在是不是有一定道理了?

    雙重Cookie驗證

    在會話中存儲CSRF Token比較繁瑣,而且不能在通用的攔截上統一處理所有的接口。

    那么另一種防御措施是使用雙重提交Cookie。利用CSRF攻擊不能獲取到用戶Cookie的特點,我們可以要求Ajax和表單請求攜帶一個Cookie中的值。

    雙重Cookie采用以下流程:

    • 在用戶訪問網站頁面時,向請求域名注入一個Cookie,內容為隨機字符串(例如csrfcookie=v8g9e4ksfhw)。
    • 在前端向后端發起請求時,取出Cookie,并添加到URL的參數中(接上例POST https://www.a.com/comment?csrfcookie=v8g9e4ksfhw)。
    • 后端接口驗證Cookie中的字段與URL參數中的字段是否一致,不一致則拒絕。

    此方法相對于CSRF Token就簡單了許多??梢灾苯油ㄟ^前后端攔截的的方法自動化實現。后端校驗也更加方便,只需進行請求中字段的對比,而不需要再進行查詢和存儲Token。

    當然,此方法并沒有大規模應用,其在大型網站上的安全性還是沒有CSRF Token高,原因我們舉例進行說明。

    由于任何跨域都會導致前端無法獲取Cookie中的字段(包括子域名之間),于是發生了如下情況:

    • 如果用戶訪問的網站為www.a.com,而后端的api域名為api.a.com。那么在www.a.com下,前端拿不到api.a.com的Cookie,也就無法完成雙重Cookie認證。
    • 于是這個認證Cookie必須被種在a.com下,這樣每個子域都可以訪問。
    • 任何一個子域都可以修改a.com下的Cookie。
    • 某個子域名存在漏洞被XSS攻擊(例如upload.a.com)。雖然這個子域下并沒有什么值得竊取的信息。但攻擊者修改了a.com下的Cookie。
    • 攻擊者可以直接使用自己配置的Cookie,對XSS中招的用戶再向www.a.com下,發起CSRF攻擊。

    總結:

    用雙重Cookie防御CSRF的優點:

    • 無需使用Session,適用面更廣,易于實施。
    • Token儲存于客戶端中,不會給服務器帶來壓力。
    • 相對于Token,實施成本更低,可以在前后端統一攔截校驗,而不需要一個個接口和頁面添加。

    缺點:

    • Cookie中增加了額外的字段。
    • 如果有其他漏洞(例如XSS),攻擊者可以注入Cookie,那么該防御方式失效。
    • 難以做到子域名的隔離。
    • 為了確保Cookie傳輸安全,采用這種防御方式的最好確保用整站HTTPS的方式,如果還沒切HTTPS的使用這種方式也會有風險。

    Samesite Cookie屬性

    防止CSRF攻擊的辦法已經有上面的預防措施。為了從源頭上解決這個問題,Google起草了一份草案來改進HTTP協議,那就是為Set-Cookie響應頭新增Samesite屬性,它用來標明這個 Cookie是個“同站 Cookie”,同站Cookie只能作為第一方Cookie,不能作為第三方Cookie,Samesite 有兩個屬性值,分別是 Strict 和 Lax,下面分別講解:

    Samesite=Strict

    這種稱為嚴格模式,表明這個 Cookie 在任何情況下都不可能作為第三方 Cookie,絕無例外。比如說 b.com 設置了如下 Cookie:

    Set-Cookie: foo=1; Samesite=Strict Set-Cookie: bar=2; Samesite=Lax Set-Cookie: baz=3

    我們在 a.com 下發起對 b.com 的任意請求,foo 這個 Cookie 都不會被包含在 Cookie 請求頭中,但 bar 會。舉個實際的例子就是,假如淘寶網站用來識別用戶登錄與否的 Cookie 被設置成了 Samesite=Strict,那么用戶從百度搜索頁面甚至天貓頁面的鏈接點擊進入淘寶后,淘寶都不會是登錄狀態,因為淘寶的服務器不會接受到那個 Cookie,其它網站發起的對淘寶的任意請求都不會帶上那個 Cookie。

    Samesite=Lax

    這種稱為寬松模式,比 Strict 放寬了點限制:假如這個請求是這種請求(改變了當前頁面或者打開了新頁面)且同時是個GET請求,則這個Cookie可以作為第三方Cookie。比如說 b.com設置了如下Cookie:

    Set-Cookie: foo=1; Samesite=Strict Set-Cookie: bar=2; Samesite=Lax Set-Cookie: baz=3

    當用戶從 a.com 點擊鏈接進入 b.com 時,foo 這個 Cookie 不會被包含在 Cookie 請求頭中,但 bar 和 baz 會,也就是說用戶在不同網站之間通過鏈接跳轉是不受影響了。但假如這個請求是從 a.com 發起的對 b.com 的異步請求,或者頁面跳轉是通過表單的 post 提交觸發的,則bar也不會發送。

    生成Token放到Cookie中并且設置Cookie的Samesite,Java代碼如下:

    private void addTokenCookieAndHeader(HttpServletRequest httpRequest, HttpServletResponse httpResponse) {//生成tokenString sToken = this.generateToken();//手動添加Cookie實現支持“Samesite=strict”//Cookie添加雙重驗證String CookieSpec = String.format("%s=%s; Path=%s; HttpOnly; Samesite=Strict", this.determineCookieName(httpRequest), sToken, httpRequest.getRequestURI());httpResponse.addHeader("Set-Cookie", CookieSpec);httpResponse.setHeader(CSRF_TOKEN_NAME, token);}

    代碼源自OWASP Cross-Site_Request_Forgery #Implementation example

    我們應該如何使用SamesiteCookie

    如果SamesiteCookie被設置為Strict,瀏覽器在任何跨域請求中都不會攜帶Cookie,新標簽重新打開也不攜帶,所以說CSRF攻擊基本沒有機會。

    但是跳轉子域名或者是新標簽重新打開剛登陸的網站,之前的Cookie都不會存在。尤其是有登錄的網站,那么我們新打開一個標簽進入,或者跳轉到子域名的網站,都需要重新登錄。對于用戶來講,可能體驗不會很好。

    如果SamesiteCookie被設置為Lax,那么其他網站通過頁面跳轉過來的時候可以使用Cookie,可以保障外域連接打開頁面時用戶的登錄狀態。但相應的,其安全性也比較低。

    另外一個問題是Samesite的兼容性不是很好,現階段除了從新版Chrome和Firefox支持以外,Safari以及iOS Safari都還不支持,現階段看來暫時還不能普及。

    而且,SamesiteCookie目前有一個致命的缺陷:不支持子域。例如,種在topic.a.com下的Cookie,并不能使用a.com下種植的SamesiteCookie。這就導致了當我們網站有多個子域名時,不能使用SamesiteCookie在主域名存儲用戶登錄信息。每個子域名都需要用戶重新登錄一次。

    總之,SamesiteCookie是一個可能替代同源驗證的方案,但目前還并不成熟,其應用場景有待觀望。

    防止網站被利用

    前面所說的,都是被攻擊的網站如何做好防護。而非防止攻擊的發生,CSRF的攻擊可以來自:

    • 攻擊者自己的網站。
    • 有文件上傳漏洞的網站。
    • 第三方論壇等用戶內容。
    • 被攻擊網站自己的評論功能等。

    對于來自黑客自己的網站,我們無法防護。但對其他情況,那么如何防止自己的網站被利用成為攻擊的源頭呢?

    • 嚴格管理所有的上傳接口,防止任何預期之外的上傳內容(例如HTML)。
    • 添加Header X-Content-Type-Options: nosniff 防止黑客上傳HTML內容的資源(例如圖片)被解析為網頁。
    • 對于用戶上傳的圖片,進行轉存或者校驗。不要直接使用用戶填寫的圖片鏈接。
    • 當前用戶打開其他用戶填寫的鏈接時,需告知風險(這也是很多論壇不允許直接在內容中發布外域鏈接的原因之一,不僅僅是為了用戶留存,也有安全考慮)。

    CSRF其他防范措施

    對于一線的程序員同學,我們可以通過各種防護策略來防御CSRF,對于QA、SRE、安全負責人等同學,我們可以做哪些事情來提升安全性呢?

    CSRF測試

    CSRFTester是一款CSRF漏洞的測試工具,CSRFTester工具的測試原理大概是這樣的,使用代理抓取我們在瀏覽器中訪問過的所有的連接以及所有的表單等信息,通過在CSRFTester中修改相應的表單等信息,重新提交,相當于一次偽造客戶端請求,如果修改后的測試請求成功被網站服務器接受,則說明存在CSRF漏洞,當然此款工具也可以被用來進行CSRF攻擊。 CSRFTester使用方法大致分下面幾個步驟:

    步驟1:設置瀏覽器代理

    CSRFTester默認使用Localhost上的端口8008作為其代理,如果代理配置成功,CSRFTester將為您的瀏覽器生成的所有后續HTTP請求生成調試消息。

    步驟2:使用合法賬戶訪問網站開始測試

    我們需要找到一個我們想要為CSRF測試的特定業務Web頁面。找到此頁面后,選擇CSRFTester中的“開始錄制”按鈕并執行業務功能;完成后,點擊CSRFTester中的“停止錄制”按鈕;正常情況下,該軟件會全部遍歷一遍當前頁面的所有請求。

    步驟3:通過CSRF修改并偽造請求

    之后,我們會發現軟件上有一系列跑出來的記錄請求,這些都是我們的瀏覽器在執行業務功能時生成的所有GET或者POST請求。通過選擇列表中的某一行,我們現在可以修改用于執行業務功能的參數,可以通過點擊對應的請求修改query和form的參數。當修改完所有我們希望誘導用戶form最終的提交值,可以選擇開始生成HTML報告。

    步驟4:拿到結果如有漏洞進行修復

    首先必須選擇“報告類型”。報告類型決定了我們希望受害者瀏覽器如何提交先前記錄的請求。目前有5種可能的報告:表單、iFrame、IMG、XHR和鏈接。一旦選擇了報告類型,我們可以選擇在瀏覽器中啟動新生成的報告,最后根據報告的情況進行對應的排查和修復。

    CSRF監控

    對于一個比較復雜的網站系統,某些項目、頁面、接口漏掉了CSRF防護措施是很可能的。

    一旦發生了CSRF攻擊,我們如何及時的發現這些攻擊呢?

    CSRF攻擊有著比較明顯的特征:

    • 跨域請求。
    • GET類型請求Header的MIME類型大概率為圖片,而實際返回Header的MIME類型為Text、JSON、HTML。

    我們可以在網站的代理層監控所有的接口請求,如果請求符合上面的特征,就可以認為請求有CSRF攻擊嫌疑。我們可以提醒對應的頁面和項目負責人,檢查或者 Review其CSRF防護策略。

    個人用戶CSRF安全的建議

    經常上網的個人用戶,可以采用以下方法來保護自己:

    • 使用網頁版郵件的瀏覽郵件或者新聞也會帶來額外的風險,因為查看郵件或者新聞消息有可能導致惡意代碼的攻擊。
    • 盡量不要打開可疑的鏈接,一定要打開時,使用不常用的瀏覽器。

    總結

    簡單總結一下上文的防護策略:

    • CSRF自動防御策略:同源檢測(Origin 和 Referer 驗證)。
    • CSRF主動防御措施:Token驗證 或者 雙重Cookie驗證 以及配合Samesite Cookie。
    • 保證頁面的冪等性,后端接口不要在GET頁面中做用戶操作。

    為了更好的防御CSRF,最佳實踐應該是結合上面總結的防御措施方式中的優缺點來綜合考慮,結合當前Web應用程序自身的情況做合適的選擇,才能更好的預防CSRF的發生。

    歷史案例

    WordPress的CSRF漏洞

    2012年3月份,WordPress發現了一個CSRF漏洞,影響了WordPress 3.3.1版本,WordPress是眾所周知的博客平臺,該漏洞可以允許攻擊者修改某個Post的標題,添加管理權限用戶以及操作用戶賬戶,包括但不限于刪除評論、修改頭像等等。具體的列表如下:

    • Add Admin/User
    • Delete Admin/User
    • Approve comment
    • Unapprove comment
    • Delete comment
    • Change background image
    • Insert custom header image
    • Change site title
    • Change administrator’s email
    • Change Wordpress Address
    • Change Site Address

    那么這個漏洞實際上就是攻擊者引導用戶先進入目標的WordPress,然后點擊其釣魚站點上的某個按鈕,該按鈕實際上是表單提交按鈕,其會觸發表單的提交工作,添加某個具有管理員權限的用戶,實現的碼如下:

    <html> <body onload="javascript:document.forms[0].submit()"> <H2>CSRF Exploit to add Administrator</H2> <form method="POST" name="form0" action="http://<wordpress_ip>:80/wp-admin/user-new.php"> <input type="hidden" name="action" value="createuser"/> <input type="hidden" name="_wpnonce_create-user" value="<sniffed_value>"/> <input type="hidden" name="_wp_http_referer" value="%2Fwordpress%2Fwp-admin%2Fuser-new.php"/> <input type="hidden" name="user_login" value="admin2"/> <input type="hidden" name="email" value="admin2@admin.com"/> <input type="hidden" name="first_name" value="admin2@admin.com"/> <input type="hidden" name="last_name" value=""/> <input type="hidden" name="url" value=""/> <input type="hidden" name="pass1" value="password"/> <input type="hidden" name="pass2" value="password"/> <input type="hidden" name="role" value="administrator"/> <input type="hidden" name="createuser" value="Add+New+User+"/> </form> </body> </html>

    YouTube的CSRF漏洞

    2008年,有安全研究人員發現,YouTube上幾乎所有用戶可以操作的動作都存在CSRF漏洞。如果攻擊者已經將視頻添加到用戶的“Favorites”,那么他就能將他自己添加到用戶的“Friend”或者“Family”列表,以用戶的身份發送任意的消息,將視頻標記為不宜的,自動通過用戶的聯系人來共享一個視頻。例如,要把視頻添加到用戶的“Favorites”,攻擊者只需在任何站點上嵌入如下所示的IMG標簽:

    <img src="http://youtube.com/watch_ajax?action_add_favorite_playlist=1&video_ id=[VIDEO ID]&playlist_id=&add_to_favorite=1&show=1&button=AddvideoasFavorite"/>

    攻擊者也許已經利用了該漏洞來提高視頻的流行度。例如,將一個視頻添加到足夠多用戶的“Favorites”,YouTube就會把該視頻作為“Top Favorites”來顯示。除提高一個視頻的流行度之外,攻擊者還可以導致用戶在毫不知情的情況下將一個視頻標記為“不宜的”,從而導致YouTube刪除該視頻。

    這些攻擊還可能已被用于侵犯用戶隱私。YouTube允許用戶只讓朋友或親屬觀看某些視頻。這些攻擊會導致攻擊者將其添加為一個用戶的“Friend”或“Family”列表,這樣他們就能夠訪問所有原本只限于好友和親屬表中的用戶觀看的私人的視頻。

    攻擊者還可以通過用戶的所有聯系人名單(“Friends”、“Family”等等)來共享一個視頻,“共享”就意味著發送一個視頻的鏈接給他們,當然還可以選擇附加消息。這條消息中的鏈接已經并不是真正意義上的視頻鏈接,而是一個具有攻擊性的網站鏈接,用戶很有可能會點擊這個鏈接,這便使得該種攻擊能夠進行病毒式的傳播。

    參考文獻

    • Mozilla wiki.Security-Origin
    • OWASP.Cross-Site_RequestForgery(CSRF)_Prevention_Cheat_Sheet.
    • Gmail Security Hijack Case.Google-Gmail-Security-Hijack.
    • Netsparker Blog.Same-Site-Cookie-Attribute-Prevent-Cross-site-Request-Forgery
    • MDN.Same-origin_policy#IE_Exceptions

    下期預告

    前端安全系列文章將對XSS、CSRF、網絡劫持、Hybrid安全等安全議題展開論述。下期我們要討論的是網絡劫持,敬請期待。

    作者簡介

    • 劉燁,美團點評前端開發工程師,負責外賣用戶端前端業務。

    總結

    以上是生活随笔為你收集整理的前端安全系列(二):如何防止CSRF攻击?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    欧美激情综合五月色丁香小说 | 亚洲最新在线 | 国产精品一区欧美 | 99久久精品久久亚洲精品 | 精品96久久久久久中文字幕无 | 国产无吗一区二区三区在线欢 | 亚洲日韩欧美一区二区在线 | 日韩视频在线观看视频 | 日韩av成人| 中文字幕视频网 | 国产一级片毛片 | 亚洲.www| 97国产大学生情侣酒店的特点 | 国内揄拍国产精品 | 亚洲黄色精品 | 精品国产视频一区 | 亚洲精品国产第一综合99久久 | 色婷婷88av视频一二三区 | 国产视频69| 最新在线你懂的 | 欧美黄色软件 | 精品国产1区2区3区 国产欧美精品在线观看 | 久久蜜臀一区二区三区av | 操操操操网| 九九有精品| 免费黄色网址大全 | 久草在线视频首页 | 国产精品视频内 | 日韩va欧美va亚洲va久久 | 日日操操操 | 999国内精品永久免费视频 | 特级大胆西西4444www | 日韩在线不卡视频 | 国产vs久久 | 成人福利av | 激情欧美日韩一区二区 | 美女网站视频免费黄 | 91九色视频导航 | 久久99久久99久久 | 91片黄在线观 | 欧美久久久久 | 开心色激情网 | 天天综合网 天天综合色 | 日韩免费视频观看 | 麻豆视频国产精品 | se婷婷| 久久在线免费观看 | 97自拍超碰 | 久久久999免费视频 日韩网站在线 | 中文字幕有码在线播放 | 黄色特一级片 | 91精品电影 | 黄色成人小视频 | 亚洲乱码中文字幕综合 | 国产特级毛片aaaaaa高清 | 久久99热这里只有精品 | 欧美成人在线免费观看 | 国产破处精品 | 日日日操 | 久久1区| 国产成人精品电影久久久 | h文在线观看免费 | 日韩一级电影在线观看 | 狠狠色丁香久久婷婷综合_中 | 国产在线最新 | 激情喷水 | 夜夜躁狠狠躁 | 91九色国产视频 | 日韩资源在线观看 | 在线观看不卡的av | 中日韩免费视频 | 999久久 | 日本中文一级片 | 久草在线免费资源 | 97超在线视频 | 在线一级片 | 超碰精品在线观看 | 美女在线免费观看视频 | 国产精品资源 | 成人网在线免费视频 | 国产一级久久 | 最新日韩视频 | 81国产精品久久久久久久久久 | 日日成人网 | 久久成人免费电影 | 免费黄色网址大全 | 日韩午夜网站 | 91香蕉视频黄色 | 久久69精品| 久久久久久久久久久网站 | 在线观看一二三区 | 黄色视屏免费在线观看 | 福利片视频区 | 成人亚洲精品国产www | 欧美日韩亚洲在线观看 | 国产99久久久国产精品免费二区 | 久久精品国产免费看久久精品 | 五月开心激情网 | 国产一级在线免费观看 | 久久久久欧美精品 | 国产精品一区二区在线免费观看 | 久久久久久久久久久成人 | 国产精品久久久久久久久久久久久 | 国产96精品 | 久草资源在线 | 不卡精品视频 | 国产日产av | 三级免费黄 | 狠狠色丁香婷婷综合久小说久 | 欧美 日韩 国产 中文字幕 | 麻豆国产精品永久免费视频 | 国产精品乱码一区二三区 | 成人午夜影院在线观看 | 亚洲国产精品500在线观看 | 天天干视频在线 | 天天射成人| 国产成人久久精品亚洲 | 成人性生交大片免费观看网站 | 日韩av在线一区二区 | 日本精品久久 | 色婷婷激情电影 | 日韩区在线观看 | 久久久久久高清 | 热久久电影 | 在线天堂视频 | 国产日韩精品在线 | 久久一线| 亚洲欧美成人在线 | 国产视频99 | 国产麻豆精品久久一二三 | 日韩一区精品 | 国产资源在线视频 | 日韩欧美国产激情在线播放 | 免费精品国产 | 欧美性大战| 欧美在线观看视频 | 四虎影视成人精品国库在线观看 | 天天操夜夜想 | 免费精品国产va自在自线 | 国产小视频在线播放 | 欧美精品一二三 | 日韩激情视频 | 久久久久久蜜av免费网站 | 亚洲午夜久久久综合37日本 | 国产又粗又猛又黄视频 | .国产精品成人自产拍在线观看6 | 黄色1级大片 | 国产九九精品视频 | 伊甸园永久入口www 99热 精品在线 | 国产高清精品在线观看 | 国产精品国产亚洲精品看不卡15 | 久草视频在线资源站 | 99精品国产99久久久久久97 | 色综合久久88色综合天天免费 | 91精品视频免费看 | 成人欧美一区二区三区在线观看 | 国产高清视频在线播放 | 激情影院在线 | 91麻豆精品91久久久久同性 | 国产精品中文字幕av | 中文av一区二区 | 国产精品久久久久久久久久了 | 97热久久免费频精品99 | 中文字幕中文字幕在线中文字幕三区 | 国产精品久久电影观看 | 在线观看日韩国产 | 西西www444 | 成人国产精品免费观看 | 九色精品免费永久在线 | 美女国产在线 | 天天色天天射综合网 | 91在线资源 | 在线视频手机国产 | 日韩三级中文字幕 | 99这里有精品 | 91一区二区三区久久久久国产乱 | 91最新在线视频 | 日韩在线免费小视频 | 久久久久一区二区三区 | av免费网页 | 在线国产精品视频 | 日产中文字幕 | 日本xxxx.com | 久久精品韩国 | 久亚洲| 国产成人精品一区在线 | 午夜精品视频一区 | 91视频免费视频 | 97在线精品国自产拍中文 | 国产精品永久免费 | 99热国产在线观看 | 东方av在 | 99热超碰在线 | 久草久草在线观看 | 国产一区二区不卡在线 | 国产精品久久久久久久久久久久午夜 | 欧美日韩国产亚洲乱码字幕 | 亚洲综合激情 | 99久久精品免费看 | 色综合久久五月 | 91丨九色丨蝌蚪丰满 | 国产色视频网站 | 草在线视频 | 97免费| 999在线观看视频 | 欧美日韩首页 | 久久第四色 | 国产精品 久久 | 91探花系列在线播放 | 少妇啪啪av入口 | 中文在线天堂资源 | 中文字幕在线观看完整版 | 成年人国产在线观看 | 国产精品九九九 | 色在线国产 | 69国产成人综合久久精品欧美 | 激情综合啪 | 91大神dom调教在线观看 | 在线观看播放av | 国产一二三区在线观看 | 一区二区三区精品久久久 | 色噜噜日韩精品欧美一区二区 | 欧美日韩免费在线观看视频 | 久久亚洲二区 | 久久久国产精品久久久 | 亚洲黄色在线播放 | 国产精品免费一区二区三区在线观看 | 在线观看免费版高清版 | 在线一区电影 | 在线岛国av | 黄色小说在线免费观看 | 亚洲狠狠婷婷 | 久久这里只有精品久久 | 免费日韩一区二区 | 国产一级视屏 | 亚洲精品综合欧美二区变态 | 激情 一区二区 | 超碰午夜 | 久久电影网站中文字幕 | 国产99久久九九精品免费 | 天天爱天天操天天射 | 91精品国产乱码在线观看 | 黄色91免费观看 | 欧美巨大 | 婷婷在线综合 | 欧美日韩国产页 | 亚洲一级国产 | 亚洲欧美视频在线播放 | 狠狠干天天色 | 免费精品在线观看 | 一区二区三区四区久久 | 婷婷丁香激情 | 在线观看91精品国产网站 | 日韩av免费在线电影 | 精品在线免费观看 | 色网站免费在线观看 | 欧洲精品视频一区 | 不卡的av在线播放 | www.人人干| 欧美a在线免费观看 | 日韩精品视频免费 | 久久伊人热| 天天操操操操操 | 99视频精品全国免费 | 欧美激情综合五月色丁香 | 丰满少妇对白在线偷拍 | 亚洲成色 | 婷婷久久丁香 | 99精品欧美一区二区 | 91爱爱免费观看 | 免费在线观看av的网站 | 国产亚洲资源 | 亚洲精品毛片一级91精品 | 国内99视频 | 欧美日韩不卡在线观看 | 天天操天天操天天操天天操天天操 | 亚洲在线成人精品 | 精品国产一区二 | 99热在线观看 | 精品国产视频在线观看 | 69视频永久免费观看 | 中文字幕av播放 | 免费日韩三级 | 中文字幕乱视频 | 国产中文字幕大全 | 国产在线91在线电影 | 成人黄色一级视频 | 黄在线免费观看 | 久久久久久久久久久免费视频 | 久久免费视频国产 | 日本视频精品 | 在线观看成人网 | 午夜视频在线观看欧美 | www.五月天婷婷.com | 国产日韩视频在线播放 | 免费看黄在线网站 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 国产美女搞久久 | 中文字幕在线观看视频网站 | 久久久久久国产精品久久 | 日本字幕网| 午夜视频在线观看网站 | 亚洲精品乱码久久久久v最新版 | 久久天天躁夜夜躁狠狠85麻豆 | 婷婷色中文网 | 亚洲黄色区 | 日韩av片免费在线观看 | 国产精品成人国产乱 | 久久中文字幕在线视频 | 天天操夜夜操国产精品 | 黄色片网站av | 福利视频 | 国产精品久久久久久久久久 | 91激情| 六月丁香婷婷网 | 免费在线黄 | 日韩av免费观看网站 | 久久国产亚洲精品 | 国产粉嫩在线观看 | 国产日韩欧美在线一区 | 一区二区三区日韩精品 | 黄在线免费观看 | 精品亚洲国产视频 | 91精品久久久久久久久久入口 | 国产91九色蝌蚪 | 高清免费在线视频 | www婷婷| 五月激情丁香图片 | 国产精品一区二区久久 | 国产色婷婷 | 欧美 激情在线 | 最近日本中文字幕 | 日韩理论 | 国产精品成人a免费观看 | 少妇av网| 久久久首页| 国内视频在线观看 | 亚洲综合在线观看视频 | 美女视频免费一区二区 | 亚洲天堂网在线视频观看 | 久久久www成人免费毛片麻豆 | 亚洲第一中文字幕 | 日本中文字幕在线播放 | 久久在线播放 | 国产男女免费完整视频 | 亚洲天堂精品 | 久久久久久高潮国产精品视 | 日本性动态图 | 亚色视频在线观看 | 国模精品在线 | 狠狠狠干狠狠 | 九九久| 国产一区二区综合 | 在线欧美小视频 | 免费无遮挡动漫网站 | 婷婷综合久久 | 亚洲成aⅴ人在线观看 | 国产精品一区二区在线免费观看 | 91精品国产自产在线观看 | 亚洲精品成人 | 激情五月激情综合网 | 日韩在线字幕 | 成+人+色综合 | 又黄又刺激的视频 | 91av在| 国产高清亚洲 | 欧美一区二区精品在线 | 在线观看www视频 | 丁香资源影视免费观看 | 在线观看黄污 | av在线播放中文字幕 | 国产视频精品视频 | 九九欧美视频 | 国产手机在线 | 成年人黄色大全 | 黄色激情网址 | 欧美色综合天天久久综合精品 | 国产玖玖精品视频 | 中文字幕在线观看资源 | 亚洲一区二区视频 | 久草影视在线 | 国产精品18久久久久久久网站 | 亚洲国产精品久久久 | 国产精品久久久久永久免费看 | 二区视频在线观看 | 日本公妇在线观看 | 天堂久色| 精品国产精品久久一区免费式 | 国内精品毛片 | 欧美va天堂va视频va在线 | 手机在线中文字幕 | 人人添人人澡 | 香蕉视频在线免费 | 超碰人人射 | 久久视频在线观看免费 | 中文av在线免费观看 | 国产精品久久久久久一二三四五 | 午夜精品久久久久久久久久 | 欧美黄色特级片 | 国产精品video| 一区二区三区电影在线播 | 中文字幕在线观看第二页 | 精品国产一区二区三区免费 | 国产一级性生活视频 | 亚洲九九九在线观看 | 麻豆91精品视频 | 亚洲视频在线看 | 国产乱对白刺激视频在线观看女王 | 亚洲综合色av | 视频一区二区视频 | 久久97精品 | 久草视频在线免费看 | 天天射天天干天天插 | 久久在线看 | 日韩欧美一区二区三区免费观看 | 黄色毛片大全 | 911亚洲精品第一 | 久草视频免费播放 | 日韩午夜av | 免费看v片 | 黄色软件在线观看 | 国产精品系列在线观看 | 国产在线久草 | 久久手机免费观看 | 日韩一二三 | 国产精品久久久久影院 | 国产日韩精品在线 | 视频福利在线观看 | 亚洲日本精品视频 | 一本一本久久aa综合精品 | 欧美日韩久久不卡 | 伊人五月天综合 | 九九精品无码 | 亚洲欧洲一级 | 一本色道久久综合亚洲二区三区 | 亚洲精品视频在线观看网站 | 亚洲国产色一区 | 欧美成人精品欧美一级乱黄 | 狠狠婷婷 | 久久99久国产精品黄毛片入口 | 国内精品一区二区 | 四虎国产精品成人免费4hu | 日韩二区三区在线观看 | 久久福利 | 国产专区在线视频 | 92精品国产成人观看免费 | 天天插天天干天天操 | 成人黄色电影视频 | 亚洲最新合集 | 在线影院中文字幕 | 亚洲高清av在线 | 在线电影日韩 | 日韩亚洲国产精品 | 国产一区二区在线精品 | 国产一区二区在线播放视频 | 免费观看一级一片 | 全黄网站| 精品一区二区视频 | 欧美激情精品一区 | 九九久久婷婷 | 美女网色| 成人动漫精品一区二区 | 在线电影av | 国产午夜在线 | 91黄在线看 | 特黄一级毛片 | 日本女人的性生活视频 | 亚洲成人黄 | 区一区二区三在线观看 | 91精品爽啪蜜夜国产在线播放 | 久爱综合 | 国内外成人免费在线视频 | 一级黄色网址 | 美国av片在线观看 | 国产美女被啪进深处喷白浆视频 | 日日麻批40分钟视频免费观看 | 久久婷婷精品视频 | 国产日韩在线观看一区 | 四虎永久视频 | 日本不卡123区 | 天天激情综合 | 中文字幕一二 | 韩日电影在线 | 国产精品 日本 | 欧美另类69 | av动态图片 | 欧美日韩免费观看一区=区三区 | 天天做天天射 | 在线观看视频福利 | 精品国产诱惑 | 97超碰国产精品女人人人爽 | 久久国产精品久久国产精品 | 欧美人体xx | 久久好看| 丝袜足交在线 | 国产精品99免视看9 国产精品毛片一区视频 | 日韩精品在线播放 | 狠狠色噜噜狠狠狠合久 | 日韩av电影网站在线观看 | 欧美成亚洲 | 91精品久久久久久久久久入口 | 国产在线播放一区二区三区 | 狠狠色婷婷丁香六月 | 一区二区精品在线观看 | 国产.精品.日韩.另类.中文.在线.播放 | 国产一区二区精品久久91 | 免费观看黄色12片一级视频 | 麻豆 91 在线| 狠狠色综合网站久久久久久久 | 九九热在线精品 | 麻豆视频在线观看免费 | 日韩专区中文字幕 | 国产精品久久久久影院日本 | 欧美精品久久 | 免费精品视频在线观看 | 亚洲欧美日韩精品久久奇米一区 | 国产精品久久久久久久久久久久 | 九九精品视频在线观看 | 精品视频 | 91精品国产成人观看 | 成人免费ⅴa| 久久免费视频在线观看6 | 欧美国产亚洲精品久久久8v | 在线观看视频黄 | 毛片精品免费在线观看 | 亚洲中字幕 | 欧美最爽乱淫视频播放 | 成人免费视频免费观看 | 日韩免费中文字幕 | 国产免费又爽又刺激在线观看 | 亚洲精品乱码久久久久久按摩 | 日本99干网 | 激情婷婷在线 | 天天草天天摸 | 亚洲精品成人免费 | 91桃色在线免费观看 | 最近最新mv字幕免费观看 | 成人a级免费视频 | 日韩特级片 | 一区二区三区在线视频观看58 | 日韩av看片 | 国产精品9999久久久久仙踪林 | 波多野结衣视频一区二区三区 | 伊人中文网 | 午夜视频在线观看一区二区 | 欧美成人猛片 | 欧美成人在线网站 | av高清影院 | av激情五月 | 日本久久久亚洲精品 | 天天曰天天射 | 九九热精品视频在线观看 | 国产精品专区h在线观看 | 中文字幕在线看视频 | 天堂在线一区二区 | 亚洲天堂网视频在线观看 | 精品久久久久久亚洲综合网 | 九九热精品视频在线播放 | 久久久久久久国产精品影院 | 五月婷婷六月丁香 | 色综合天天色综合 | 一二区av | 天天操·夜夜操 | 国产精品白丝jk白祙 | 中文字幕 在线 一 二 | 日日夜夜av| 色99在线| 国产一区二区在线免费播放 | 最近中文字幕大全中文字幕免费 | 久久亚洲国产精品 | av一级片| 日本久久久久久久久久久 | 成人黄色小说在线观看 | 2019中文在线观看 | 亚洲第一区在线播放 | 久草在线最新免费 | 国产高清一级 | 国产在线观看你懂的 | 精品一二三四在线 | 精品女同一区二区三区在线观看 | 日韩和的一区二在线 | 国产精品久久人 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产精品久久久久久久7电影 | 久精品视频在线观看 | 美女视频a美女大全免费下载蜜臀 | 九九色在线观看 | 日韩精品视频免费在线观看 | 最新亚洲视频 | 久热av| 91在线免费视频观看 | 久黄色 | 一区二区三区免费网站 | 久久精品视频一 | 中文字幕日本在线观看 | 亚洲精品在线资源 | 五月天伊人网 | 在线视频 成人 | 四虎影视成人永久免费观看亚洲欧美 | 999亚洲国产996395 | 精品一区二区6 | 日韩欧美视频在线观看免费 | av电影在线不卡 | 91综合视频在线观看 | 成人久久久久久久久久 | 91av视频在线观看免费 | 欧美精品乱码久久久久久按摩 | 国产精品 999| 国产精品黄网站在线观看 | 成人免费视频网址 | 丝袜美腿在线 | 天堂网一区二区 | 日韩一区二区三区观看 | 成年人免费在线播放 | 国产一级久久久 | 在线亚洲激情 | 国产在线视频一区二区三区 | 日韩.com | 亚洲国产成人高清精品 | 色播五月激情综合网 | 黄色不卡av | 日韩理论影院 | 久久国产精品免费一区二区三区 | 中文字幕二区在线观看 | 久久视精品 | 久久av免费 | www.香蕉视频在线观看 | 99精品久久99久久久久 | 久久国产精品久久国产精品 | 色av婷婷 | 亚洲视频综合 | 国产美女视频 | 91香蕉视频污在线 | 日韩电影在线观看一区二区三区 | 五月天天天操 | 久久这里有精品 | 免费电影一区二区三区 | 日韩免费av网址 | 国产欧美精品一区二区三区四区 | 天天综合网 天天综合色 | 人人爽久久涩噜噜噜网站 | 奇米导航 | 国产一区二区精品久久 | 久久久久久激情 | 高清久久久久久 | 天天插天天 | 天天做天天爱天天爽综合网 | 91精品久久久久久久久 | 久久激情五月激情 | 国产99久久久精品视频 | 国产免费又黄又爽 | 日本在线观看一区二区 | 亚洲精品xxx | 亚洲第一中文网 | 国产综合精品一区二区三区 | 国产成人亚洲在线观看 | 成人毛片a | 久久精品欧美视频 | 国产成人黄色网址 | 99九九视频 | 特级a毛片| 亚洲日韩中文字幕 | 国产一级片免费视频 | 国产精品一区二区精品视频免费看 | 欧美做受高潮电影o | 国产69久久久 | 日韩欧美精品在线 | 五月激情视频 | 一区二区三区不卡在线 | 日韩免费视频在线观看 | 久久久久免费网 | 国产123区在线观看 国产精品麻豆91 | 一区二区不卡高清 | 91av视频观看 | 亚洲人成人天堂h久久 | 精品国产一区二区三区免费 | 国产一区二区三区免费观看视频 | 99国内精品 | 久久视频精品在线 | av免费看在线 | 色无五月 | 国产高清免费观看 | 91片黄在线观 | 一级片黄色片网站 | 久久激情久久 | 国产午夜麻豆影院在线观看 | 色在线视频网 | 亚洲六月丁香色婷婷综合久久 | 9797在线看片亚洲精品 | 91精品啪啪 | 天天爱天天射 | 六月激情婷婷 | 日韩高清一二区 | 日日干日日操 | 99精品视频免费 | 97超碰人人在线 | 五月天激情视频 | 黄色大片国产 | 国产精品99久久久久久久久 | 黄色网www | 亚洲乱码精品久久久 | 久久免费公开视频 | 蜜臀av免费一区二区三区 | 丁香资源影视免费观看 | 国产视频一级 | 2019中文最近的2019中文在线 | 天天躁天天操 | 日韩av一卡二卡三卡 | 中文字幕一区二区三区在线播放 | 欧美一级裸体视频 | 不卡av电影在线观看 | www激情久久| 99久久久久久国产精品 | 97超碰超碰| 国产精品午夜在线 | 麻豆视频在线观看免费 | 韩国av电影在线观看 | 亚洲第二色| 在线视频日韩欧美 | 永久免费毛片 | 黄色在线看网站 | 在线看国产视频 | 日韩在线播放av | 最新av在线网站 | 国产精品久久久久久高潮 | 成年人毛片在线观看 | 六月色丁香| zzijzzij亚洲成熟少妇 | www欧美日韩| 亚洲综合干 | 天天操天天操一操 | 国产a免费| 91av视频在线观看免费 | 久久久www免费电影网 | 亚洲一级性 | 99草视频 | 国产一级特黄毛片在线毛片 | 免费看污网站 | 久久精品视频在线观看免费 | 久久字幕网 | 久久久久久久电影 | 爱爱av网 | 国产视频在线播放 | 99操视频 | 成人亚洲精品国产www | 91pony九色丨交换 | 九九一级片| 99免费看片 | 国产91aaa| av品善网| 久久夜色电影 | 一区二区视| 国产精品视频在线看 | 免费观看全黄做爰大片国产 | 视频 天天草| 精品视频免费久久久看 | 亚洲精品美女 | www.五月激情.com | 国产一区二区免费在线观看 | 亚洲jizzjizz日本少妇 | 色婷婷国产 | 亚洲三级网站 | 久久国产女人 | www.97色.com| 国产午夜三级一区二区三桃花影视 | 国产不卡毛片 | 久久久国产99久久国产一 | 99久久久久久 | 五月婷婷在线播放 | 久久婷婷丁香 | 在线有码中文字幕 | 三级动图 | 亚洲最新视频在线 | 日b黄色片 | 涩涩网站在线看 | av中文字幕免费在线观看 | 国产裸体视频bbbbb | 最新色视频 | 国产亚洲成人精品 | 超碰久热| 精品久久久久久综合 | 日韩美女av在线 | 久久综合亚洲鲁鲁五月久久 | 免费av网址在线观看 | 免费毛片aaaaaa | 久久经典国产 | 成人动漫一区二区三区 | 黄色三级免费看 | 久久精品视频网 | 色网站免费在线观看 | 一级性视频 | 久久成电影 | av看片在线 | 久久成人人人人精品欧 | 99精品福利 | 中文字幕在线视频一区二区 | 久久视频在线看 | 97天堂网 | 国产精品毛片久久蜜 | 在线观看日韩视频 | 精品免费国产一区二区三区四区 | 国产免费观看久久 | 国产资源免费 | 国产尤物在线观看 | 国产精品av免费在线观看 | 超碰公开在线观看 | 亚洲欧美色婷婷 | 99中文字幕视频 | 亚洲精品美女久久久久网站 | 国内精品久久久久影院日本资源 | 成人a级网站 | 国产在线一区二区三区播放 | 亚洲精品国产成人av在线 | 97精品国产aⅴ | 天天插天天 | 麻豆视频一区二区 | 久久tv| 国产人成一区二区三区影院 | 亚洲四虎| 黄色片网站大全 | 超碰国产在线播放 | 91激情视频在线 | 国产精品婷婷 | 国产午夜精品一区二区三区嫩草 | 91精品国自产在线 | 久久综合狠狠综合久久综合88 | 精品国产一区二区三区四区vr | 亚洲精品免费在线视频 | 日本爱爱片 | 黄色大全免费观看 | 久久久久久久久免费视频 | 久久久久国产免费免费 | 97免费| 成人 亚洲 欧美 | 福利久久久 | 国产资源网站 | 欧美成人91| 欧美有色 | 欧美性色综合 | 亚洲精品国产自产拍在线观看 | 日韩在线无 | 中文字幕在线播放视频 | 国产一区二区不卡视频 | 亚洲国产精彩中文乱码av | 亚洲精品久久激情国产片 | 久久综合中文字幕 | 又黄又爽又湿又无遮挡的在线视频 | 9在线观看免费 | 色噜噜在线观看视频 | 黄av免费| 欧美日韩国产一二三区 | 91精品伦理 | 亚洲黄色片在线 | 人人爱人人添 | 亚洲国内精品在线 | 黄色a一级片 | 久草在线资源免费 | 天堂av在线免费观看 | 一区二区 不卡 | 麻豆传媒一区二区 | 97偷拍在线视频 | 久久久久影视 | 天天操天天舔天天干 | 中文字幕一区二区三区在线播放 | 99久久婷婷国产综合亚洲 | 九九九视频在线 | 骄小bbw搡bbbb揉bbbb | 丁香在线| 日韩1页| 精品美女视频 | 91在线免费视频 | 少妇精品久久久一区二区免费 | 最近能播放的中文字幕 | 99精彩视频在线观看免费 | 欧美日韩中文国产一区发布 | 三级av免费观看 | 蜜臀精品久久久久久蜜臀 | 亚洲国产精品久久久久婷婷884 | av在线免费网站 | 黄色小网站在线 | 国产精品一区二区三区免费看 | 国产日韩欧美综合在线 | 日本一区二区三区免费看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 极品国产91在线网站 | 91精品第一页| 免费久久网 | 国产成人久久久77777 | 国产拍揄自揄精品视频麻豆 | 国产精品美女999 | 久久综合国产伦精品免费 | 久久国产精品网站 | 黄色免费网站下载 | www黄色com| 国产原厂视频在线观看 | 亚洲久在线 | 91免费视频国产 | 欧美色图p | 美女国内精品自产拍在线播放 | 亚洲国产日本 | 亚洲黄色免费网站 | 亚洲日本成人网 | 国产中文字幕视频在线观看 | 在线导航av| 国产爽妇网 | 三级在线视频观看 | 日韩在线视频网站 | 久久精品视频网 | 嫩嫩影院理论片 | 婷婷色婷婷 | 欧美日视频| 岛国一区在线 | 欧美色图88| 久久久2o19精品 | 美女在线免费观看视频 | 午夜视频在线观看网站 | 91在线观看视频网站 | 国产精品理论片在线播放 | 亚州精品一二三区 | 天天搞天天 | 国产精品正在播放 | 国产精品一区二区三区免费视频 | 久久99精品久久久久久三级 | 最近中文字幕高清字幕在线视频 | 午夜视频不卡 | 五月激情五月激情 | 成人免费在线视频 | 国产热re99久久6国产精品 | 久久黄色a级片 | 蜜臀av性久久久久av蜜臀妖精 | 精品欧美在线视频 | 日本久久影视 | 中文字幕免费久久 | 成全在线视频免费观看 | 国产精品网在线观看 | 黄色小网站在线观看 | 国产精品一区二区久久国产 | 久久五月情影视 | 6080yy午夜一二三区久久 | 国产一区二区电影在线观看 | 国产精品区一区 | 成人在线黄色电影 | 精品国产一二三四区 | 久草视频观看 | 久久精品这里都是精品 | 久久国产一区二区 | 日韩精品网址 | 九七视频在线观看 | 亚洲 中文 欧美 日韩vr 在线 | 99久久精品久久久久久动态片 | 欧美精品久久久久久久久久久 | 久久久久久久久久久久久久电影 | 偷拍福利视频一区二区三区 | 毛片网站在线看 | 久久久久女人精品毛片九一 | 91cn国产在线 | 涩涩网站在线 | 国产精品久久久久久久久久新婚 | 在线观看网站你懂的 | 97看片 | 白丝av免费观看 | 亚洲国产精品免费 | 久久国产精品视频免费看 | 丁香婷婷综合色啪 | a视频在线观看免费 | 91在线小视频 | 国产成人高清av | 水蜜桃亚洲一二三四在线 | 中文字幕 国产视频 | 国产午夜影院 | 欧美日韩三区二区 | 国产欧美日韩一区 | 亚洲午夜剧场 | 97麻豆视频 | 99精品国产视频 | 国产一区影院 | 国产免费观看av | 最近中文字幕高清字幕在线视频 | 亚洲欧美日韩国产 | 成人午夜黄色影院 | 亚洲激精日韩激精欧美精品 | 欧美午夜久久久 | 最新日本中文字幕 | 日本久久久久久 | 久久日韩精品 | 大片网站久久 | 久久免费一 | 夜色资源站国产www在线视频 | 91亚洲精品久久久蜜桃 | 91.dizhi永久地址最新 | 国产亚洲成人精品 | 国产精品美女久久久网av | 美女免费av | 国产中文字幕三区 | 91污视频在线| 91在线国产观看 | 亚洲视频1区2区 | 在线中文字幕播放 |