精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久久久久久久久国产精品| 国产精品一区二| 伊人网伊人影院| 天天免费亚洲黑人免费| 国产日韩欧美a| 国产精品色悠悠| 国产黄色小视频网站| 日本少妇精品亚洲第一区| 综合网在线视频| 99www免费人成精品| 99热只有这里有精品| 精品国产乱码久久久久久蜜坠欲下| 91黄色小视频| 日本不卡一区二区三区四区| 高清一区二区三区四区| 亚洲欧美日韩综合国产aⅴ| 最近2019中文字幕大全第二页| 999精彩视频| 国产美女福利在线观看| 26uuu精品一区二区在线观看| 国产精品久久二区| 麻豆一区产品精品蜜桃的特点| 亚洲一区中文字幕在线| 日韩在线中文| 精品精品国产高清a毛片牛牛| xxxx18hd亚洲hd捆绑| 国产剧情在线观看| 福利一区二区在线| 国产91网红主播在线观看| av黄色免费在线观看| 久久97久久97精品免视看秋霞| 色成年激情久久综合| 中文字幕在线中文| 二区三区在线| 成人福利视频在线| 国产欧美一区二区三区四区| 日韩aaaaaa| 水蜜桃久久夜色精品一区| 亚洲国产成人爱av在线播放| 国产视频在线视频| 成全电影大全在线观看| ...xxx性欧美| 日本一区二区三区www| 人妻一区二区三区四区| 久久91精品久久久久久秒播| 欧洲日韩成人av| 久久网中文字幕| 国产探花在线精品| 日韩欧美一二区| 午夜在线观看av| 波多视频一区| 亚洲国产精品人人做人人爽| 青春草在线视频免费观看| 国产资源在线播放| 91影院在线观看| 岛国一区二区三区高清视频| 中文字幕一区二区在线视频| 久久精品电影| 九九热这里只有精品6| 岛国片在线免费观看| 蜜臀91精品国产高清在线观看| 精品国产91久久久久久久妲己| 亚洲激情在线看| 国产亚洲精品精品国产亚洲综合| 日韩欧美精品中文字幕| 日日橹狠狠爱欧美超碰| 韩国精品一区| 午夜精品在线看| 日本欧美视频在线观看| 久草在线资源站资源站| 一区二区在线电影| 伊人久久在线观看| 青青青国内视频在线观看软件| 亚洲欧美中日韩| 国产精品夜夜夜爽张柏芝| 日本中文字幕在线视频| 国产精品国模大尺度视频| 亚洲a∨一区二区三区| 成人一区二区不卡免费| 欧美国产精品中文字幕| 一区二区三区四区国产| 日本不卡不卡| 亚洲日本电影在线| 大胆欧美熟妇xx| 国产盗摄一区二区| 午夜伊人狠狠久久| 国产91在线视频观看| 亚洲精品永久免费视频| 色婷婷久久久亚洲一区二区三区| 激情综合在线观看| 精品三区视频| 在线成人av网站| 亚洲妇熟xx妇色黄蜜桃| 精品一区91| 欧美精品一区二区蜜臀亚洲| 国产精品边吃奶边做爽| dy888夜精品国产专区| 91色在线观看| 久久久久香蕉视频| 99国产精品久久久久久久| 青青在线视频一区二区三区| 国产精品suv一区| 老司机精品视频网站| 国产精品美女无圣光视频| 一级黄色片免费| 国产成人av电影在线观看| 懂色一区二区三区av片| 欧美性孕妇孕交| 国产精品国产三级国产aⅴ中文 | 久久丁香综合五月国产三级网站| 91精品国产自产在线观看永久| 国产精品系列视频| 成人av中文字幕| 西游记1978| 欧美黄色视屏| 91久久线看在观草草青青| 欧洲美女亚洲激情| 日韩三级毛片| 日韩视频中文字幕| 日韩精品久久久久久久| 三级成人在线视频| 91久久久久久久久久| 色一情一乱一乱一区91av| 日本一区二区三区高清不卡| 免费的一级黄色片| 99re66热这里只有精品4| 69堂国产成人免费视频| 久久久久麻豆v国产精华液好用吗| 99精品网站| 91sao在线观看国产| 国产精品欧美综合亚洲| 成人激情小说网站| 一区二区三区四区视频在线| 在线观看爽视频| 欧美日韩国产高清一区二区| 白嫩情侣偷拍呻吟刺激| 亚洲国产一区二区在线观看 | 亚洲一区欧美二区| 91在线中文字幕| 欧美日本韩国一区二区| 亚洲综合一二区| 久久综合伊人77777麻豆最新章节| 51亚洲精品| 日韩一中文字幕| 日本中文字幕久久| 99久久精品国产导航| 一本大道东京热无码aⅴ| 国产精品66| 亚洲欧美一区二区三区久久| www.天天色| 国产福利一区二区| 美女黄色片网站| 欧美成人一二区| 国产亚洲美女久久| 老熟妇仑乱一区二区av| 成人小视频免费观看| 99精品一区二区三区的区别| 精品福利在线| 色狠狠久久aa北条麻妃| 又骚又黄的视频| 亚洲国产高清在线观看视频| 黄www在线观看| 日韩精品a在线观看91| 国内精品伊人久久| 亚洲精品无遮挡| 亚洲精品国产第一综合99久久 | 亚洲一区二区三区高清| 国产精品日韩高清| 免费在线国产视频| 精品久久国产字幕高潮| 久久r这里只有精品| 国产精品综合二区| 熟女熟妇伦久久影院毛片一区二区| 国产成+人+综合+亚洲欧美| 亚洲三级 欧美三级| 天堂网免费视频| 国产精品少妇自拍| jizz18女人| 91精品精品| 亚洲一区二区三区乱码aⅴ| 久久精品视频免费看| 日韩午夜在线观看视频| 免费在线视频一区二区| 成人在线一区二区三区| 久久久亚洲国产精品| 欧美日韩导航| 日本在线精品视频| 爱久久·www| 在线成人av网站| 激情视频在线播放| 91最新地址在线播放| 东京热加勒比无码少妇| 成人3d动漫在线观看| 国产精品视频区1| 国产综合在线观看| 欧美这里有精品| www.xx日本| 国产成人免费视频网站高清观看视频| 欧美一级爱爱视频| 老司机aⅴ在线精品导航| 国产精品成人观看视频国产奇米| 天堂中文在线观看视频| 色哟哟亚洲精品| √天堂中文官网8在线| 成人精品免费网站| 久久久久久久久久福利| 中文不卡在线| 韩国成人动漫在线观看| 99久久综合国产精品二区| 九九久久综合网站| 久久99久久| 日韩午夜在线观看视频| 色屁屁影院www国产高清麻豆| 国产精品护士白丝一区av| 动漫美女无遮挡免费| 久久综合影视| 久久久无码中文字幕久...| 日韩动漫一区| 亚洲999一在线观看www| 人狥杂交一区欧美二区| xvideos成人免费中文版| 天天操天天干天天舔| 在线播放91灌醉迷j高跟美女 | 一区二区激情小说| 九色porny自拍视频| 国产成人午夜视频| 亚洲综合婷婷久久| 久久午夜精品| 国产日韩av网站| 久久精品亚洲人成影院| 欧美18视频| 国产精品22p| 亚洲综合在线中文字幕| 精品视频在线一区二区在线| 欧美成人四级hd版| 3d成人动漫在线| 亚洲久久久久久久久久| 亚洲国产精品欧美久久| 欧美视频第二页| 日韩人妻精品中文字幕| 亚洲国产日韩一区二区| 日本一区二区视频在线播放| 高潮精品一区videoshd| 九九热精品在线播放| 免费视频一区二区三区在线观看| 国产中文字幕二区| 日韩激情一区| 人偷久久久久久久偷女厕| 欧美三级自拍| 国产精品v欧美精品∨日韩| 成人污污视频| 成人激情电影一区二区| 成人网ww555视频免费看| 欧美性在线视频| 国产超级va在线视频| 亚洲性xxxx| 日韩毛片在线一区二区毛片| 日韩欧美你懂的| 黑人操亚洲女人| 日韩久久久久久| av在线资源观看| 6080国产精品一区二区| 国产精品国产三级国产aⅴ | 99热这里只有精品在线| 欧美精品欧美精品系列| 一本色道久久综合亚洲| 在线成人免费观看| 国产色综合视频| 日韩精品最新网址| 亚洲美女性生活| 精品久久人人做人人爱| 国产三级小视频| 日韩一区二区高清| hs视频在线观看| 日韩久久免费av| 涩涩视频免费看| 亚洲精选一区二区| av在线播放av| 久久久国产精品免费| 女人天堂av在线播放| 97精品视频在线观看| 91精品论坛| 国产精品一二区| 成人在线啊v| 国产不卡一区二区在线观看| 久久悠悠精品综合网| 日本午夜一区二区三区| 不卡一区综合视频| 国产精品久久久影院| 亚洲激情综合| a√天堂在线观看| 视频一区二区三区中文字幕| 午夜久久久精品| 久久精品99国产国产精| 精品影片一区二区入口| 99久久综合国产精品| a毛片毛片av永久免费| 国产精品美女久久久久久久| 日本福利片在线观看| 亚洲丶国产丶欧美一区二区三区| 日产电影一区二区三区| 欧美伊人久久久久久久久影院 | 欧美tk—视频vk| 日本不卡免费播放| 日韩在线观看免费高清| 美洲精品一卡2卡三卡4卡四卡| 琪琪亚洲精品午夜在线| 亚洲福利影视| 黄色99视频| 欧美oldwomenvideos| 精品少妇在线视频| 麻豆一区二区三区| 在线观看国产网站| 国产精品视频一二| 久久黄色小视频| 欧美亚洲综合一区| 亚洲国产剧情在线观看| 伊人久久久久久久久久| 欧美24videosex性欧美| 国产精品国产亚洲伊人久久| 一区二区三区在线免费看| 欧美国产综合视频| 亚洲调教视频在线观看| 999在线观看| 久久在线观看免费| 久久黄色免费视频| 91精品国产综合久久小美女| 天堂在线观看视频| 麻豆一区二区在线观看| 日韩高清中文字幕一区二区| 99爱精品视频| 外国成人免费视频| 超碰在线人人爱| 91蜜桃网址入口| 久久精品免费av| 欧美一区二区三区白人| 高清毛片在线看| 日本成人精品在线| 亚洲精品一区国产| 亚洲国产精品久久久久婷婷老年| 999亚洲国产精| 91精产国品一二三产区别沈先生| 国产欧美视频一区二区三区| 国产香蕉在线视频| 日韩精品在线看片z| 青梅竹马是消防员在线| 欧美另类在线观看| 亚洲高清影院| 亚洲国产午夜伦理片大全在线观看网站 | 国模精品一区二区| 欧美激情亚洲一区| 美国十次综合久久| 超薄肉色丝袜足j调教99| 国内精品自线一区二区三区视频| 人妻无码一区二区三区| 精品久久久国产精品999| 免费av一级片| 国内揄拍国内精品| 久久a级毛片毛片免费观看| 成人一级生活片| 国产精品一二三| 免费中文字幕在线观看| 日韩欧美专区在线| 污污视频在线看| 99re在线国产| 亚洲国产99| 成人h动漫精品一区| 欧美日韩亚洲精品一区二区三区| 日韩在线观看视频一区二区三区| 欧美激情女人20p| 国产精品高潮呻吟久久久久| 欧美这里只有精品| 白白色 亚洲乱淫| 精品国产xxx| 伊人久久久久久久久久久久久 | 亚洲国产美女搞黄色| 丰满人妻一区二区| 清纯唯美亚洲综合| 欧美一级本道电影免费专区| 热久久精品免费视频| 国产精品免费aⅴ片在线观看| 国产免费视频一区二区三区| 欧美肥老妇视频| 欧美福利在线播放网址导航| 人妻有码中文字幕| 中文字幕高清一区| 国产麻豆精品一区| 国语自产精品视频在线看一大j8 | 91精品国产高清久久久久久| 欧美成人基地| 青青在线视频免费| 成人欧美一区二区三区在线播放| aaa级黄色片| 91国语精品自产拍在线观看性色| 欧美日日夜夜| 欧美一级xxxx| 亚洲成人手机在线| 成年人免费在线视频| 亚洲sss综合天堂久久| 亚洲精品在线二区|