精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

別再用 JWT 作為 Session 系統,問題重重,后果很危險!

開發 前端
無狀態 JWT Tokens 無法被單獨地銷毀或更新,取決于你如何存儲,可能還會導致長度問題、安全隱患。有狀態 JWT Tokens 在功能方面與 Session cookies 無異,但缺乏生產環境的驗證、經過大量 Review 的實現,以及良好的客戶端支持。

JSON Web Tokens,又稱 JWT。本文將詳解:為何 JWT 不適合存儲 Session,以及 JWT 引發的安全隱患。望各位對JWT有更深的理解!

十分不幸,我發現越來越多的人開始推薦使用 JWT 管理網站的用戶會話(Session)。在本文中,我將說明為何這是個非常非常不成熟的想法。

為了避免疑惑和歧義,首先定義一些術語:

  • 無狀態 JWT(Stateless JWT):包含 Session 數據的 JWT Token。Session 數據將被直接編碼進 Token 內。
  • 有狀態 JWT(Stateful JWT):包含 Session 引用或其 ID 的 JWT Token。Session 數據存儲在服務端。
  • Session token(又稱 Session cookie):標準的、可被簽名的 Session ID,例如各類 Web 框架(譯者注:包括 Laravel)內已經使用了很久的 Session 機制。Session 數據同樣存儲在服務端。

需要澄清的是:本文并非挑起「永遠不要使用 JWT」的爭論 —— 只是想說明 JWT 并不適合作為 Session 機制,且十分危險。JWT 在其它方面的確有其用武之地。本文結尾,我將簡短地介紹一些合理用途。

圖片圖片

1. 首先需要說明

很多人錯誤地嘗試比較 Cookies 和 JWT。這種對比毫無意義,就像對比內存和硬盤一樣。Cookies 是一種存儲機制,然而 JWT Tokens 是被加密并簽名后的令牌。

它們并不對立 —— 相反,他們可以獨立或結合使用。正確的對比應當是:Session 對比 JWT,以及 Cookies 對比 Local Storage。

在本文中,我將把 JWT Tokens 同 Session 展開對比,并偶爾對比 Cookie 和 Local Storage。這樣的比較才有意義。

2. JWT 坊間流傳的優勢

在人們安利 JWT 時,常常宣揚以下幾點好處:

  • 易于水平擴展
  • 易于使用
  • 更加靈活
  • 更加安全
  • 內置過期時間功能
  • 無需詢問用戶「本網站使用 Cookies」
  • 防止 CSRF 攻擊
  • 更適用于移動端
  • 適用于阻止 Cookies 的用戶

我將會逐條闡述以上觀點為何是錯誤或誤導性的,其中部分解釋可能會有些模糊,這主要是因為這些「好處」的表述本身就比較模糊。

易于水平擴展?

這是列表中唯一一條在技術層面部分正確的「好處」,但前提是你使用的是無狀態 JWT Tokens。然而事實上,幾乎沒人需要這種橫向擴展能力。有很多更簡單的拓展方式,除非你在運維像淘寶這樣體量的系統,否則根本不需要無狀態的會話(Stateless sessions)。

一些擴展有狀態會話(Stateful sessions)的例子:

  1. 「在單臺服務器上運行多個后端進程」 :只需在此服務器上安裝 Redis 服務用于存儲 Session 即可。
  2. 「運行多臺服務器」 :只需一臺專用的 Redis 服務器用于存儲 Session 即可。
  3. 「在多集群內運行多臺服務器」 :會話保持(又稱:粘滯會話)。

以上所有場景在現有軟件系統內都具備良好的支持,你的應用需要進行特殊處理的可能性基本為零。

或許你在想,應當為你的應用預留更多調整空間,以防未來需要某些特殊操作。但實踐告訴我們,以后再替換 Session 機制并不困難,唯一的代價是,在遷移后所有用戶將被強制登出一次。我們沒必要在前期實現 JWT,尤其是考慮到它所帶來的負面影響。

易于使用?

這個真沒有。你不得不自行處理 Session 的管理機制,無論是客戶端還是服務端。然而標準的 Session cookies 則開箱即用,JWT 并沒有更簡單。

說白了,目前各種開箱即用的框架并沒有自動集成 JWT,需要研發人員自行處理。

更加靈活?

我暫時還沒看到有人成功地闡述「JWT 如何更加靈活」。幾乎每個主流的 Session 實現,都允許你直接把數據存儲進 Session,這跟 JWT 的機制并沒有差別。據我所知,這只是個流行語罷了。

更加安全?

一大批人認為 JWT Tokens「更加安全」,理由是使用了加密技術。實際上,簽名后的 Cookies 比未簽名的 Cookies 同樣更加安全,但這絕不是 JWT 獨有的,優秀的 Session 實現均使用簽名后的 Cookies(譯者注:例如 Laravel)。

「使用加密技術」并不能神奇地使某些東西更加安全,它必須服務于特定目的,并且是針對該目的的有效解決方案。錯誤地使用加密反而可能會降低安全性。

另一個我聽過很多次的對于「更加安全」的論述是「JWT 不使用 Cookies 傳輸 Tokens」。這實在是太荒謬了,Cookie 只不過是一條 HTTP 頭信息,使用 Cookies 并不會造成任何不安全。事實上,Cookies 受到特別良好的保護,用于防止惡意的客戶端代碼。

如果擔心有人攔截掉你的 Session cookies,那你應當考慮使用 TLS。如果不使用 TLS,任何類型的 Session 機制都可能被攔截,包括 JWT。

內置過期時間功能?

無意義,又沒什么卵用的特性。在服務端也能實現過期控制,有不少 Session 實現就是這么做的。實際上,服務端的過期控制更加合理,這樣你的應用就可以清除不再需要的 Session 數據;若使用無狀態 JWT Tokens 且依賴于它的過期機制,則無法執行此操作。

這個過期時間在某些場景實際上是增加了復雜度的。

無需詢問用戶「本網站使用 Cookies」?

完全錯誤。并沒有什么「Cookies 法律」—— 有關 Cookies 的各種法律實際上涵蓋了任何類型「對某項服務的正常運行非嚴格必須的持久性 ID」,任何你能想到的 Session 機制都包括在內。

簡單來說:

  • 若出于系統功能目的使用 Session 或 Token(例如:保持用戶的登錄態),那么無論怎樣存儲 Session 均無需征得用戶同意。
  • 若出于其他目的使用 Session 或 Token(例如:數據分析、追蹤),那么無論怎樣存儲 Session 都需要詢問用戶是否允許。

防止 CSRF 攻擊?

這個真真的沒有。存儲 JWT Tokens 的方式大概有兩種:

  • 「存入 Cookie」 :仍然易受 CSRF 攻擊,還是需要進行特殊處理,保護其不受攻擊。
  • 「其他地方,例如 Local Storage」 :雖然不易受到 CSRF 攻擊,但你的網站需要 JavaScript 才能正常訪問;并且又引發了另一個完全不同,或許更加嚴重的漏洞。我將在后文詳細說明。

預防 CSRF 攻擊唯一的正確方法,就是使用 CSRF Tokens。Session 機制與此無關。

更適用于移動端?

毫無根據。目前所有可用的瀏覽器幾乎都支持 Cookies,因此也支持 Session。同樣,主流的移動端開發框架以及嚴謹的 HTTP 客戶端庫都是如此。這根本不是個問題。

適用于阻止 Cookies 的用戶?

不太可能。用戶通常會阻止任何意義上的持久化數據,而不是只禁止 Cookies。例如,Local Storage 以及任何能夠持久化 Session 的存儲機制(無論是否使用 JWT)。不管你出于多么簡單的目的使用 JWT 都無濟于事,這是另一個完全獨立的問題了。另外,試圖讓身份認證過程在沒有 Cookies 的情況下正常進行,基本沒戲。

最重要的是,禁用掉所有 Cookies 的多數用戶都明白這會導致身份認證無法使用,他們會單獨解鎖那些他們比較關心的站點。這并不是你 —— 一個 Web 開發者應當解決的問題。更好的方案是,向你的用戶們詳細地解釋為何你的網站需要 Cookies 才能使用。

3. JWT 的劣勢

以上,我已經對常見的誤解做了說明,以及為什么它們是錯誤的。你或許在想:「這好像也沒什么大不了的,即便 JWT 無法帶來任何好處,但也不會造成什么影響」,那你真是大錯特錯了。

使用 JWT 作為 Session 機制存在很多缺點,其中一部分會造成嚴重的安全問題。

更費空間

JWT Tokens 實際上并不「小」。尤其是使用無狀態 JWT 時,所有的數據將會被直接編碼進 Tokens 內,很快將會超過 Cookies 或 URL 的長度限制。你可能在想將它們存儲到 Local Storage,然而...

更不安全

若將 JWT Tokens 存儲到 Cookies 內,那么安全性與其他 Session 機制無異。但如果你將 JWT 存儲至其它地方,會導致一個新的漏洞,詳見https://blog.prevoty.com/does-jwt-put-your-web-app-at-risk,尤其是「Storing sessions」這一部分。

Local Storage,一個 HTML5 內很棒的功能,使瀏覽器支持 Key/Value 存儲。所以我們應當將 JWT Tokens 存儲到 Local Storage 嗎?考慮到這些 Tokens 可能越來越大,或許會很有用。Cookies 通常在 4k 左右的存儲時比較占優勢,對于較大的 Tokens,Cookies 可能無法勝任,而 Local Storage 或許成了明確的解決方案。然而,Local Storage 并沒有提供任何類似 Cookies 的安全措施。

LocalStorage 與 Cookies 不同,并不會在每次請求時發送存儲的數據。獲取數據的唯一方法是使用 JavaScript,這意味著任何攻擊者注入的 JavaScript 腳本只需通過內容安全策略檢查,就能任意訪問或泄露數據。

不光是這樣,JavaScript 并不在意或追蹤數據是否通過 HTTPS 發送。就 JavaScript 而言,它就只是個數據而已,瀏覽器會像操作其它數據一樣來處理它。在歷代工程師們經歷了各種麻煩之后,終于能夠確保沒有人可以惡意接觸到我們的 Cookies,然而我們卻試圖忽略這些經驗。這對我來說似乎是在退步。

簡單來說,「使用 Cookies 并不是可選的」 ,無論你是否采用 JWT。

無法單獨銷毀

還有更多安全問題。不像 Sessions 無論何時都可以單獨地在服務端銷毀。無狀態 JWT Tokens 無法被單獨的銷毀。根據 JWT 的設計,無論怎樣 Tokens 在過期前將會一直保持有效。舉個例子,這意味著在檢測到攻擊時,你卻不能銷毀攻擊者的 Session。同樣,在用戶修改密碼后,也無法銷毀舊的 Sessions。

對此,我們幾乎無能為力,除非重新構建復雜且有狀態(Stateful)的基礎設施來明確地檢測或拒絕特定 Session,否則將無法結束會話。但這完全違背了使用無狀態 JWT Tokens 的最初目的。

數據延遲

與上文的安全問題類似,還有另一個潛在的安全隱患。就像緩存,在無狀態 Tokens 內存儲的數據最終會「過時」,不再反映數據庫內最新的數據。

這意味著,Tokens 內保留的可能是過期的信息,例如:用戶在個人信息頁面修改過的舊 URL。更嚴肅點講,也可能是個具備 admin 權限的 Token,即使你已經廢除了 admin 權限。因為無法銷毀這些 Tokens,所以面對需要移除的管理員權限,除非關閉整個系統,別無他法。

實現庫缺乏生產環境驗證或壓根不存在

你或許在想,以上的這些問題都是圍繞著「無狀態 JWT」展開的,這種說法大部分情況是對的。然而,使用有狀態 Tokens 與傳統的 Session cookies 基本上是等效的... 但卻缺乏生產環境的大量驗證。

現存的 Session 實現(例如適用于 Express 的 express-session https://github.com/expressjs/sessio)已經被用于生產環境很多很多年,它們的安全性也經過了大量的改良。倘若使用 JWT 作為 Session cookies 的臨時替代品,你將無法享受到這些好處,并且必須不斷改進自己的實現(在此過程中很容易引入漏洞),或使用第三方的實現,盡管還沒有在真實世界里大量應用。

譯者注:實際上,Laravel Passport 便是使用類似「有狀態 JWT」的方式來存儲 OAuth Access Token。幸運的是,Passport 已經有不少實際應用,且不完全依賴于 JWT。

4. 結論

無狀態 JWT Tokens 無法被單獨地銷毀或更新,取決于你如何存儲,可能還會導致長度問題、安全隱患。有狀態 JWT Tokens 在功能方面與 Session cookies 無異,但缺乏生產環境的驗證、經過大量 Review 的實現,以及良好的客戶端支持。

除非,你工作在像 BAT 那樣規模的公司,否則沒什么使用 JWT 作為 Session 機制的理由。還是直接用 Session 吧。

5. JWT 適合做什么

在本文之初,我就提到 JWT 雖然不適合作為 Session 機制,但在其它方面的確有它的用武之地。該主張依舊成立,JWT 特別有效的使用例子通常是作為一次性的授權令牌。

引用JSON Web Token specification(https://tools.ietf.org/html/rfc7519):

JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. [...] enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.

在此上下文中,「Claim」可能是一條「命令」,一次性的認證,或是基本上能夠用以下句子描述的任何情況:

你好,服務器 B,服務器 A 告訴我我可以 < ...Claim... >,這是我的證據:< ...密鑰... >。

舉個例子,你有個文件服務,用戶必須認證后才能下載文件,但文件本身存儲在一臺完全分離且無狀態的「下載服務器」內。在這種情況下,你可能想要「應用服務器(服務器 A)」頒發一次性的「下載 Tokens」,用戶能夠使用它去「下載服務器(服務器 B)」獲取需要的文件。

以這種方式使用 JWT,具備幾個明確的特性:

  • Tokens 生命期較短。它們只需在幾分鐘內可用,讓客戶端能夠開始下載。
  • Tokens 僅單次使用。應用服務器應當在每次下載時頒發新的 Token。所以任何 Token 只用于一次請求就會被拋棄,不存在任何持久化的狀態。
  • 應用服務器依舊使用 Sessions。僅僅下載服務器使用 Tokens 來授權每次下載,因為它不需要任何持久化狀態。

正如以上你所看到的,結合 Sessions 和 JWT Tokens 有理有據。它們分別擁有各自的目的,有時候你需要兩者一起使用。只是不要把 JWT 用作 「持久的、長期的」 數據就好。

責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2010-07-29 15:34:41

聯通應用商店WoStore移動開發

2025-08-11 02:00:00

JWTSession系統

2025-08-13 03:00:00

2025-05-19 04:00:00

2023-09-14 12:03:30

空指針判空

2025-11-03 04:00:00

2021-06-09 06:41:11

OFFSETLIMIT分頁

2020-12-30 07:08:27

Java方法測試

2021-05-25 09:30:44

kill -9Linux kill -9 pid

2023-10-26 16:33:59

float 布局前段CSS

2020-12-04 10:05:00

Pythonprint代碼

2024-03-14 08:15:18

COUNT(*)數據庫LIMIT 1?

2014-09-03 09:28:32

開源

2021-01-29 11:05:50

PrintPython代碼

2020-12-15 08:06:45

waitnotifyCondition

2020-12-03 09:05:38

SQL代碼方案

2020-12-02 11:18:50

print調試代碼Python

2017-08-16 09:55:36

2024-12-26 07:47:20

2009-04-26 01:12:04

點贊
收藏

51CTO技術棧公眾號

亚洲欧美aaa| 亚洲区一区二区三区| 久久久精品一区二区涩爱| 国产suv精品一区| 一本色道久久综合狠狠躁的推荐| 色综合久久久久久久久五月| 国产精品区在线观看| 午夜av一区| 日韩欧美在线影院| 久久国产亚洲精品无码| 在线看黄色av| 国产成人亚洲综合a∨婷婷图片| 午夜精品久久17c| 日韩av片在线| 福利在线一区| 欧美三区免费完整视频在线观看| 欧美亚洲黄色片| 成人网视频在线观看| 国产精品123| 69av成年福利视频| www欧美com| 国产欧美一区二区精品久久久| 欧美一区二区三区系列电影| 日韩精品一区二区三区不卡 | 成人综合在线观看| 国产成人aa精品一区在线播放| 国产1区2区3区4区| 日韩精品欧美激情一区二区| 亚洲黄色www网站| 超碰人人草人人| 丝袜美腿一区| 天天操天天干天天综合网| 91制片厂免费观看| 国产高清一级毛片在线不卡| 97久久久精品综合88久久| 成人午夜在线视频一区| 最近中文字幕在线观看| 久久精品导航| 性色av一区二区咪爱| 欧美成欧美va| 久久精品青草| 中文字幕日韩精品在线观看| 激情综合丁香五月| 91欧美极品| 欧美不卡一区二区三区四区| 一二三级黄色片| 国产精品传媒麻豆hd| 欧洲视频一区二区| 精品www久久久久奶水| 国产粉嫩在线观看| 亚洲国产精品影院| 91黄色在线看| 变态调教一区二区三区| 一区二区视频在线看| 看一级黄色录像| caoporm免费视频在线| 国产精品久久久久久久久果冻传媒 | 波多野结衣绝顶大高潮| 老司机午夜精品视频在线观看| 91av在线免费观看| 欧美一区二区三区网站| 久久亚洲电影| 国产精品美女久久| 超碰在线免费97| 麻豆91精品视频| 国产综合视频在线观看| 国产精品欧美亚洲| 国产电影一区在线| 国产精品视频在线免费观看| 国产成人精品亚洲精品色欲| 国产99一区视频免费| 国产精品免费一区二区三区在线观看| 男人的天堂a在线| 97久久人人超碰| 日本一区二区三区四区在线观看| 国产乱子伦三级在线播放| 国产精品毛片久久久久久久| 女同性恋一区二区| xxxx在线视频| 色哟哟亚洲精品| 国产色视频在线播放| 精品国产亚洲一区二区三区在线 | 中文字幕求饶的少妇| 婷婷综合激情| 欧美大片在线影院| 五月婷婷视频在线| 久久丁香综合五月国产三级网站 | 亚洲精品aaaaa| 国产亚洲日本欧美韩国| 欧美一级特黄高清视频| 欧美久久九九| 日本一区二区三区在线播放| 一级黄色片在线看| 国产一区二区不卡老阿姨| 国产日韩一区二区三区| 国产专区在线| 亚洲美女少妇撒尿| 黄色动漫在线免费看| 麻豆久久久久| 日韩毛片中文字幕| 亚洲欧美另类日本| 亚洲欧美成人综合| 91久久精品美女高潮| 色wwwwww| 亚洲精品国久久99热| 久久人妻精品白浆国产| 97一区二区国产好的精华液| 中文字幕精品一区二区精品| 国产对白videos麻豆高潮| 麻豆一区二区三| 国产综合欧美在线看| 麻豆网站在线| 欧美性猛交xxxx富婆| www.国产福利| 国产亚洲第一伦理第一区| 色综合天天狠天天透天天伊人| 中文字幕xxxx| www.视频一区| 蜜臀av性久久久久蜜臀av| 国产精品伦理| 精品999久久久| 亚洲综合网在线| 蜜臀精品久久久久久蜜臀| 国模精品娜娜一二三区| 污片视频在线免费观看| 欧美日韩成人在线| 在线观看亚洲大片短视频| 91久久视频| 成人区精品一区二区| 老司机免费在线视频| 日本韩国欧美国产| 自拍视频一区二区| 欧美婷婷在线| 99国产在线| 精品视频在线一区二区| 欧美日韩一区二区欧美激情 | 中文字幕视频一区| 妺妺窝人体色www在线观看| 欧美日韩精品一区二区三区在线观看| 欧美激情精品久久久久久久变态| 97免费观看视频| 国产精品美日韩| 向日葵污视频在线观看| 欧美码中文字幕在线| 日韩av大片免费看| 青青草视频免费在线观看| 午夜精品久久久久影视| 特级特黄刘亦菲aaa级| 欧美日韩一区自拍| 成人欧美一区二区三区视频| 999精品网| 精品国产凹凸成av人网站| 国产性生活网站| 成人a免费在线看| 69sex久久精品国产麻豆| 给我免费播放日韩视频| 国产91精品久久久久久| 男人的天堂av高清在线| 欧美性做爰猛烈叫床潮| 成年人看的免费视频| 麻豆91小视频| 久久观看最新视频| 久久aimee| 日本精品中文字幕| 五月香视频在线观看| 欧美卡1卡2卡| 欧美日韩在线视频免费播放| 不卡一区二区在线| 国产精品第12页| 日韩毛片视频| 亚洲一区二区在线| 9999热视频在线观看| 亚洲精品视频二区| 在线免费看91| 一区二区在线观看免费视频播放 | 宅男在线精品国产免费观看| aaa一区二区三区| 亚洲人xxxx| 日本wwww色| 亚洲深夜av| 亚洲国产精品www| 这里视频有精品| 91精品国产91久久久久福利| 激情视频在线观看免费| 欧美日韩高清一区二区三区| 国产成人精品av久久| 久久亚洲综合色| 日韩在线一区视频| 99精品国产福利在线观看免费| 欧美最大成人综合网| 国产精品2区| 57pao精品| 国产精品一区二区三区视频网站| 亚洲国产精品久久91精品| 日韩国产亚洲欧美| 亚洲一区二区视频在线| 91在线无精精品白丝| 国产乱对白刺激视频不卡| 中文字幕无码精品亚洲35| 久久要要av| 蜜桃欧美视频| 亚洲视频一起| 国产美女91呻吟求| 国产精品久久久久久中文字 | 中文字幕av网站| 尤物av一区二区| 免费看91的网站| 99久久伊人网影院| 亚洲日本黄色片| 国产欧美精品久久| 特级西西444| 欧美精品一区二区三区精品| 国产在线资源一区| 国产精品国产三级在线观看| 日本久久中文字幕| 丁香花电影在线观看完整版| 一色桃子一区二区| 午夜视频在线播放| 日韩欧美你懂的| 中文字幕人妻一区二区在线视频| 亚洲成人资源网| a级片在线观看免费| 亚洲国产精品成人综合色在线婷婷| 88av在线播放| 成人小视频免费观看| xxx中文字幕| 久久精品国产99久久6| 欧美国产日韩在线播放| 亚洲欧美日韩综合国产aⅴ| 久草免费福利在线| 欧美日韩一卡| 国产一二三区在线播放| 一区二区电影| 麻豆传媒网站在线观看| 日韩一区三区| 亚洲资源视频| 婷婷激情图片久久| 99re99热| 亚洲精品国产首次亮相| 中文字幕剧情在线观看一区| 日韩欧美1区| 亚洲欧美在线网| 成人黄色av| 亚洲无玛一区| 99久久影视| 黑人巨大国产9丨视频| 亚洲欧美亚洲| 国产 欧美 日韩 一区| 激情丁香综合| 91国视频在线| 日韩电影网1区2区| 中文字幕视频在线免费观看| 免费成人av在线播放| 午夜免费看视频| 国内一区二区视频| 捷克做爰xxxⅹ性视频| 国产成人免费网站| 黄色免费看视频| 久久久久久久综合色一本| a级在线免费观看| 中文字幕av一区 二区| 日本黄区免费视频观看| 亚洲四区在线观看| 九九免费精品视频| 欧美日韩国产丝袜美女| 五月婷婷六月婷婷| 欧美男人的天堂一二区| jizz国产视频| 亚洲国产日韩欧美在线动漫| 久蕉在线视频| 久久精品男人天堂| 第一中文字幕在线| 国产成人精品久久| 久久电影天堂| 国产精品久久一区二区三区| 亚洲国产欧美日韩在线观看第一区| 日韩欧美精品久久| 牛牛国产精品| 欧美 国产 日本| 看电视剧不卡顿的网站| 潘金莲一级淫片aaaaa| 久久综合色之久久综合| 精品无码一区二区三区蜜臀| 亚洲一区二区在线免费观看视频| 香蕉影院在线观看| 制服.丝袜.亚洲.另类.中文| 隣の若妻さん波多野结衣| 日韩精品999| 丁香婷婷在线| 欧美日本精品在线| 秋霞国产精品| 国产精品久久久对白| 国产欧美高清视频在线| 狠狠干视频网站| 日本一不卡视频| 久久久老熟女一区二区三区91| 久久精品夜夜夜夜久久| 欧美日韩精品亚洲精品| 日本精品视频一区二区三区| 精品久久久久中文慕人妻| 亚洲人成电影在线观看天堂色| 麻豆av在线播放| 国产精品亚洲аv天堂网| 欧美尿孔扩张虐视频| 成人手机在线播放| 日本美女一区二区| 免费a v网站| 亚洲免费电影在线| 中文 欧美 日韩| 日韩精品在线观看一区二区| 尤物视频在线看| 国产精品综合不卡av| 国产精品一区二区99| 丁香六月激情婷婷| 国产一区二区不卡在线| 色撸撸在线视频| 一本色道久久加勒比精品| 黄色片网站免费在线观看| 免费不卡在线观看av| 国产极品一区| 日韩在线国产| 视频一区中文字幕国产| 亚洲最大免费视频| 午夜视黄欧洲亚洲| 性生交生活影碟片| 久久综合色影院| 亚洲欧洲二区| 亚洲午夜激情| 久久 天天综合| av免费播放网站| 在线免费观看不卡av| 奇米影视888狠狠狠777不卡| 午夜精品蜜臀一区二区三区免费| 日韩欧美高清一区二区三区| 日本丰满少妇黄大片在线观看| 美国十次了思思久久精品导航| 四虎国产精品成人免费入口| 色婷婷激情综合| 美女毛片在线看| 日本精品一区二区三区在线播放视频| 校花撩起jk露出白色内裤国产精品| 免费无码毛片一区二三区| 成人免费毛片高清视频| 国产五月天婷婷| 欧美精品一区二区三区蜜桃| 9765激情中文在线| 国产私拍一区| 性久久久久久| 欧美黄色一级生活片| 欧美在线制服丝袜| 日本在线观看www| 91久久久久久| 欧美三级乱码| 欧美夫妇交换xxx| 精品久久久久久电影| 欧美精品a∨在线观看不卡| 国产成人综合一区二区三区| 成人免费a**址| 五月天婷婷在线观看视频| 亚洲曰韩产成在线| 五月天婷婷视频| 国产成人精品综合| 国产精品不卡| 国产白袜脚足j棉袜在线观看 | 久久综合电影一区| 日韩高清在线观看一区二区| 日韩av新片网| 91美女蜜桃在线| 中文字幕在线观看你懂的| 久久国产精品久久久久久久久久| 亚洲无线观看| 污污视频网站免费观看| 中文字幕一区二区三区在线播放| 丰满人妻妇伦又伦精品国产| 91精品91久久久久久| 欧美丝袜激情| gogo亚洲国模私拍人体| 婷婷开心激情综合| porn视频在线观看| 97人人模人人爽人人喊38tv| 99精品视频免费观看视频| 中文字幕有码在线播放| 日韩视频国产视频| 在线精品亚洲欧美日韩国产| 亚洲午夜在线观看| 国产iv一区二区三区| 黄色一级视频免费看| 久久夜色精品国产欧美乱| 欧美一性一交| 九九九九九九九九| 大伊人狠狠躁夜夜躁av一区| 69av在线| 久久96国产精品久久99软件| 久久国产精品区| 国产精品久久久久久久妇| 日韩日本欧美亚洲| 综合综合综合综合综合网| 91丝袜超薄交口足| 精品视频1区2区3区| 免费影视亚洲|