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

兩種給 Http 添加狀態的方式,都不完美

開發 項目管理
給 http 添加狀態,那就給每個請求打上個標記,然后在服務端存儲這個標記對應的數據。這樣每個被標記的請求都可以找到對應的數據,自然可以做到登錄、權限等狀態的存儲。

我們知道,http 是無狀態的,也就是說上一次請求和下一次請求之間沒有任何關聯。但是我們要實現應用的功能,很多時候是需要有狀態的,比如登錄之后,再添加購物車,那就應該識別出是登錄用戶做的。

怎么給 http 請求添加上狀態呢?

這個問題的解決有兩種方案:服務端存儲的 session + cookie 的方案,客戶端存儲的 token 的方案。

但其實這兩種方案都不怎么樣,都不夠完美。

為什么這么說呢?我們分別來看一下:

服務端存儲的 session + cookie

給 http 添加狀態,那就給每個請求打上個標記,然后在服務端存儲這個標記對應的數據。這樣每個被標記的請求都可以找到對應的數據,自然可以做到登錄、權限等狀態的存儲。

這個標記應該是自動帶上的,所以 http 設計了 cookie 的機制,在里面存儲的數據是每次請求都會帶上的。

然后根據 cookie 里的標記去查找的服務端對應的數據叫做 session,這個標記就是 session 的 id。

如圖,因為請求自動帶上 cookie,那兩次請求就都可以找到 id 為 1 對應的 session,自然就知道當前登錄的用戶是誰,也可以存儲其他的狀態數據。

這就是 session + cookie 的給 http 添加狀態的方案。

大家覺得這種方案有問題么?

有問題,而且問題還挺多的。

最大的一個問題就是臭名昭著的 CSRF(跨站請求偽造):

CSRF

因為 cookie 會在請求時自動帶上,那你在一個網站登錄了,再訪問別的網站,萬一里面有個按鈕會請求之前那個網站的,那 cookie 依然能帶上。而這時候就不用再登錄了。

這樣萬一點了這個按鈕之后做了一些危險的操作呢?

是不是就很危險。

而且一般這種利用 CSRF 漏洞的網站都會偽裝的很好,讓你很難看出破綻來,這種網站叫做釣魚網站。

為了解決這個問題,我們一般會驗證 referer,就是請求是哪個網站發起的,如果發起請求的網站不對,那就阻止掉。

但這樣依然不能完全解決問題,萬一你用的瀏覽器也是有問題的,能偽造 referer 呢?

所以一般會用隨機值來解決,每次登錄隨機生成一個值,放到 session 中,后面的請求需要包含這個值才行,否則就認為是非法的。

這個隨機值叫做 token,可以放在參數中,也可以放在 header 中,因為釣魚網站拿不到這個隨機值,就算帶了 cookie 也沒發通過服務端的驗證。

這是 session + cookie 這種方案的一個缺點,但是是有解決方案的。

它還有別的缺點,比如分布式的時候:

分布式 session

session 是把狀態數據保存在服務端,那么問題來了,如果有多臺服務器呢?

當并發量上去了,單臺服務器根本承受不了,自然需要做集群,也就需要多臺服務器來提供服務。

而且現在后端還會把不同的功能拆分到不同的服務中,也就是微服務架構,自然也需要多臺服務器。

那不同服務器之間的 session 怎么同步?

登錄之后 session 是保存在某一臺服務器的,之后可能會訪問到別的服務器,這時候那臺服務器是沒有對應的 session 的,就沒法完成對應的功能。

這個問題的解決有兩種方案:

一種是 session 復制,也就是通過一種機制在各臺機器自動復制 session,并且每次修改都同步下。這個有對應的框架來做,比如 java 的 spring-session。

各臺服務器都做了 session 復制了,那你訪問任何一臺都能找到對應的 session。

還有一種方案是把 session 保存在 redis,這樣每臺服務器都去那里查,只要一臺服務器登錄了,其他的服務器也就能查到 session,這樣就不需要復制了。

還好,session 在分布式時的這個問題也算是有解決方案的。

但你你以為這就完了么?session + cookie 還有跨域的問題:

跨域

cookie 為了安全,是做了 domain 的限制的,設置 cookie 的時候會指定一個 domain,只有這個 domain 的請求才會帶上這個 cookie。

而且還可以設置過期時間、路徑等:

那萬一是不同 domain 的請求呢?也就是跨域的時候,怎么帶 cookie 呢?

a.guang.com 和 b.guang.com 這種還好,只要把 domain 設置為頂級域名 guang.com 就可以了,那二三級域名不同也能自動帶上。

但如果頂級域名也不同就沒辦法了,這種只能在服務端做下中轉,把這倆個域名統一成同一個。

上面說的不是 ajax 請求,ajax 請求有額外的機制:

ajax 請求跨域的時候是不會挾帶 cookie 的,除非手動設置 withCredentials 為 true 才可以。

而且也要求后端代碼設置了對應的 header:

Access-Control-Allow-Origin: "當前域名";
Access-Control-Allow-Credentials: true

這里的 allow origin 設置 * 都不行,必須指定具體的域名才能接收跨域 cookie。

這是 session + cookie 方式的第三個坑,好在也是有解決方案的。

我們做下小結:

session + cookie 的給 http 添加狀態的方案是服務端保存 session 數據,然后把 id 放入 cookie 返回,cookie 是自動攜帶的,每個請求可以通過 cookie 里的 id 查找到對應的 session,從而實現請求的標識。這種方案能實現需求,但是有 CSRF、分布式 session、跨域等問題,不過都是有解決方案的。

session + cookie 的方案確實不太完美,我們再來看另一種方式怎么樣:

客戶端存儲的 token

session + cookie 的方案是把狀態數據保存在服務端,再把 id 保存在 cookie 里來實現的。既然這樣的方案有那么多的問題,那我反其道而行之,不把狀態保存在服務端了,直接全部放在請求里,也不放在 cookie 里了,而是放在 header 里,這樣是不是就能解決那一堆問題了呢?

token 的方案常用 json 格式來保存,叫做 json web token,簡稱 JWT,我們就拿這個來說吧。

JWT 是保存在 request header 里的一段字符串(比如用 header 名可以叫 authorization),它分為三部分:

如圖 JWT 是由 header、payload、verify signature 三部分組成的:

header 部分保存當前的加密算法,payload 部分是具體存儲的數據,verify signature 部分是把 header 和 payload 還有 salt 做一次加密之后生成的。(salt,鹽,就是一段任意的字符串,增加隨機性)。

這三部分會分別做 Base64,然后連在一起就是 JWT 的 header,放到某個 header 比如 authorization 中:

authorization: barer xxxxx.xxxxx.xxxx

請求的時候把這個 header 帶上,服務端就可以解析出對應的 header、payload、verify signature 這三部分,然后根據 header 里的算法也對 header、payload 加上 salt 做一次加密,如果得出的結果和 verify signature 一樣,就接受這個 token。

把狀態數據都保存在 payload 部分,這樣就實現了有狀態的 http:

而且這種方式是沒有 session + cookie 那些問題的,不信我們分別來看一下:

CSRF:因為不是通過自動帶的 cookie 來關聯服務端的 session 保存的狀態,所以沒有 CSRF 問題,沒法通過 cookie 攻擊。

分布式 session:因為狀態不是保存在服務端,所以無論訪問哪臺服務器都行,只要能從 token 里解析出狀態數據就行。

跨域:因為不是 cookie 那一套,自然也沒有跨域的限制,只要手動帶上 JWT 的 header 就行。

看起來這種方式好像很完美?

其實也不是,JWT 有 JWT 的問題:

安全性

因為 JWT 把數據直接 Base64 之后就放在了 header 里,那別人就可以輕易從中拿到狀態數據,比如用戶名等敏感信息,也能根據這個 JWT 去偽造請求。

所以 JWT 要搭配 https 來用,讓別人拿不到 header。

性能

JWT 把狀態數據都保存在了 header 里,每次請求都會帶上,比起只保存個 id 的 cookie 來說,請求的內容變多了,性能也會差一些。

所以 JWT 里也不要保存太多數據。

沒法讓 JWT 失效

session 因為是存在服務端的,那我們就可以隨時讓它失效,而 JWT 不是,因為是保存在客戶端,那我們是沒法手動讓他失效的。

所以 JWT 的過期時間不要設置的太長。

所以說,JWT 的方案雖然解決了很多 session + cookie 的問題,但也不完美。

小結下:

JWT 的方案是把狀態數據保存在 header 里,每次請求需要手動攜帶,沒有 session + cookie 方案的 CSRF、分布式、跨域的問題,但是也有安全性、性能、沒法控制等問題。

說了這么多,還是寫下代碼心里更踏實:

Nest.js 實現兩種方案

我們用 Nest.js 實現下兩種方案吧,不能光紙上談兵。

首先用 @nest/cli 快速創建一個 Nest.js 項目。

npx nest new status

會生成 module、controller、service 的基礎代碼:

我們先實現 session + cookie 的方式:

session + cookie

Nest.js 的底層是 express,它只是額外提供了一些架構的劃分,所以還是 session 實現還是用的 express 的方案:

安裝 express-session 和它的 ts 類型定義:

npm install express-session @types/express-session

然后在入口模塊里啟用它:

指定個加密 cookie 用的密碼就行。

然后在 controller 里就可以注入 session 對象了:

我在 session 里放了個 count 的變量,每次訪問加一,然后 body 返回這個 count。

這樣就可以判斷 http 請求是否有了狀態。

我們來測試下:

可以看到每次請求返回的數據都不同,而且返回了一個 cookie 是 connect.sid,這個就是對應 session 的 id。

因為 cookie 在請求的時候會自動帶上,就可以實現請求的標識,給 http 請求加上狀態。

session + cookie 的方式用起來還是很簡單的,我們再來看下 jwt 的方式:

jwt

jwt 需要引入 @nestjs/jwt 這個包,然后在入口 Module 里引入 JwtModule:

引入的時候指定密碼,也就是用來加到 jwt 里的鹽,也可以指定 token 過期時間。

因為我們引入了 JwtModule,那就可以在 Controller 里依賴注入了:

聲明對 JwtService 的依賴,Nest.js 就會自動注入對應的對象。

然后定義個 controller 方法,通過 Resonse 對象來設置 authorization 的 header:

用 jwtService 生成一個 token,記錄 count,然后放到 header 里返回,同時也放在 body 里。

后面的請求就是取出這個 header,拿到其中的數據,然后 +1 之后再放回去:

這樣也實現了給 http 添加狀態的需求,不過是把數據保存在了 header 里。

我們通過 postman 測試下:

第一次請求會返回一個 authorization 的 header,body 是 1:

把這個 header 手動添加到請求 header 里,再次請求:

body 變成 2 了,同時也返回了一個新的 authorization 的 header。

把這個新的 authorization 放到請求 header 里再次請求:

body 變成 3 了,同時也返回了一個新的 authorization 的 header。

有同學問,我不用新的 header,還是用上次的 header 會怎么樣:

那樣會報錯:

jwt 生成一次只能用一次,這個一次性也是它的一個特點。

這樣,我們就分別用 Nest.js 分別實現了 session + cookie 和 jwt 兩種保存 http 狀態的方式。

代碼上傳到了 github:https://github.com/QuarkGluonPlasma/nestjs-exercize。

總結

http 是無狀態的,也就是請求和請求之間沒有關聯,但我們很多功能的實現是需要保存狀態的。

給 http 添加狀態有兩種方式:

session + cookie:把狀態數據保存到服務端,session id 放到 cookie 里返回,這樣每次請求會帶上 cookie ,通過 id 來查找到對應的 session。這種方案有 CSRF、分布式 session、跨域的問題。

jwt:把狀態保存在 json 格式的 token 里,放到 header 中,需要手動帶上,沒有 cookie + session 的那些問題,但是也有安全性、性能、沒法控制和使用一次就失效的問題。

上面這兩種方案都不是完美的,但那些問題也都有解決方案。

軟件領域很多情況下都是這樣的,某種方案都解決了一些問題,但也相應的帶來了一些新的問題。沒有銀彈,還是要熟悉它們的特點,根據不同的需求靈活選用。

責任編輯:姜華 來源: 神光的編程秘籍
相關推薦

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2023-03-29 13:06:36

2010-08-06 09:38:11

Flex讀取XML

2010-09-07 11:09:59

2023-08-24 08:02:19

冪等性API請求

2010-07-27 15:03:37

Flex ArrayC

2011-03-23 11:22:14

oracle dbli

2010-07-14 10:30:26

Perl多線程

2024-09-20 11:32:28

.NET內存管理

2010-05-10 18:19:00

負載平衡技術

2010-08-03 13:27:04

FlexBuilder

2011-04-02 09:48:38

深拷貝

2016-11-07 09:02:02

Malloc內存syscall

2024-02-04 09:24:45

MyBatisSQL語句Spring

2021-12-08 10:47:35

RabbitMQ 實現延遲

2010-07-15 14:38:55

Perl eval函數

2009-09-08 15:22:20

Spring依賴注入
點贊
收藏

51CTO技術棧公眾號

亚洲色图视频免费播放| 欧美亚洲一区二区三区| 欧美一级日韩免费不卡| cao在线观看| 成人在线视频成人| 国产在线视视频有精品| 91av视频在线观看| 99热99这里只有精品| 综合激情五月婷婷| 色av成人天堂桃色av| 久久久无码中文字幕久...| 香蕉视频网站在线| 国产一区二区免费在线| 日韩免费精品视频| 久久网中文字幕| 亚洲午夜精品久久久| 国模雨婷捆绑高清在线| 国产日产欧美一区| 国产精品裸体一区二区三区| 中文字幕你懂的| 亚洲激情自拍| 麻豆国产精品va在线观看不卡| 亚洲欧美视频在线播放| 成人亚洲精品| 在线中文字幕不卡| 国产素人在线观看| 性xxxfreexxxx性欧美| 国产亚洲综合av| 精品国产一区二区三区免费| 国产欧美久久久精品免费| 日本成人中文字幕在线视频| 久久青草福利网站| 欧美成人三级在线观看| 欧美电影一区| 在线电影av不卡网址| 国产乱了高清露脸对白| 精品国模一区二区三区欧美| 欧美在线free| 91av在线免费播放| 涩涩涩在线视频| 亚洲成人免费观看| 成人一级生活片| 特级毛片在线| 亚洲人吸女人奶水| 中文字幕日韩一区二区三区| 国产在线视频资源| 久久久综合网站| 精品亚洲欧美日韩| 三级毛片在线免费看| caoporn国产精品| 国产日韩一区二区三区| 老熟妇高潮一区二区高清视频| 国产美女精品人人做人人爽| 成人黄色短视频在线观看| 在线免费观看一级片| 麻豆国产精品官网| 国产日韩欧美中文| 男女h黄动漫啪啪无遮挡软件| 9.1片黄在线观看| 精品高清在线| 在线播放日韩欧美| 精品国产国产综合精品| 五月天久久777| 伦伦影院午夜日韩欧美限制| 日本青青草视频| 国产综合精品| 午夜伦理精品一区| 黄色在线免费观看| 日韩电影在线看| 国产精品丝袜白浆摸在线| 在线免费看av的网站| 九色porny丨国产精品| 51国产成人精品午夜福中文下载| 精品人妻一区二区三区换脸明星| 国产成人激情av| 韩国成人一区| 日本一区视频| 国产精品毛片高清在线完整版| 一本—道久久a久久精品蜜桃| 超碰个人在线| 精品国产成人在线| 日韩一级片播放| 国产视频一区二| 精品福利视频一区二区三区| theav精尽人亡av| 日韩精品免费一区二区三区| 久久综合国产精品台湾中文娱乐网| 久草视频手机在线观看| 中文亚洲字幕| 国产精品主播视频| 超碰福利在线观看| 91老司机福利 在线| 亚洲欧美国产精品桃花| 日本欧美电影在线观看| 欧美午夜精品久久久久久人妖| 精品久久久久久中文字幕2017| 国产高清日韩| 亚洲精品一区二区三区婷婷月| 久久久久99精品成人| 欧美日本二区| 国产精品日韩欧美大师| 性中国xxx极品hd| 色婷婷久久久| 亚洲va欧美va人人爽| 免费观看精品视频| 精品国产乱码久久久久久樱花| 亚洲а∨天堂久久精品喷水| 国产黄色大片免费看| 欧美日一区二区在线观看| 日本久久中文字幕| www.我爱av| 国产女同互慰高潮91漫画| 国产欧美精品aaaaaa片| a成人v在线| 亚洲成人a**站| 欧美偷拍一区二区三区| 亚洲第一伊人| 亚洲一区亚洲二区亚洲三区| 男人av在线| 亚洲国产日韩精品| 伊人成人222| 国产精品自拍区| 久久久免费电影| 国产精品国产三级国产普通话对白 | 欧美 亚洲 另类 激情 另类| 成人天堂资源www在线| 亚洲午夜精品国产| 欧美xx视频| 亚洲精品wwwww| 久艹视频在线观看| 国产乱色国产精品免费视频| 亚洲乱码一区二区三区三上悠亚| 成人性生交大片免费网站| 亚洲国产精品va在线| 亚洲二区在线播放| 久久国产精品99精品国产| 欧美一二三区| 成人免费看黄| 亚洲女成人图区| 天天干在线播放| 99这里只有精品| 777av视频| 99热这里只有精品首页| 九九久久精品一区| 国产黄色美女视频| 亚洲精品视频在线观看免费| 三级一区二区三区| 偷偷www综合久久久久久久| 国产精品久久福利| 国产精品视频一二三四区| 97精品资源在线观看| 日韩中文字幕不卡视频| 伊人久久亚洲综合| 国产精品高潮久久久久无| 五月激情婷婷在线| 一区二区中文| 成人情视频高清免费观看电影| 好吊日av在线| 亚洲精品美女在线| 色av性av丰满av| 国产日产精品一区| 美女在线视频一区二区| 99久久影视| 超碰97在线资源| 欧美13videosex性极品| 亚洲日韩中文字幕在线播放| 波多野结衣人妻| 亚洲欧洲av在线| 午夜免费福利网站| 在线观看视频免费一区二区三区| 激情小说综合区| 国产成人精品亚洲日本在线观看| 中文字幕综合在线| 国产激情久久久久久熟女老人av| 亚洲精品欧美综合四区| 欧美xxxxx少妇| 久久精品午夜| 国产精品av免费| 九九热播视频在线精品6| 日本一欧美一欧美一亚洲视频| 91社区在线| 日韩一区二区精品| 超碰超碰超碰超碰| 国产精品免费aⅴ片在线观看| 激情成人在线观看| 99热在线精品观看| 亚洲国产一区二区精品视频 | 一区一区三区| 日韩专区在线播放| 黄色av网站免费在线观看| 日韩欧美在线视频免费观看| 香蕉成人在线视频| 成年人午夜久久久| 亚洲欧美日韩一级| 亚洲激情亚洲| 中文字幕一区二区三区在线乱码| 午夜不卡视频| 三级欧美韩日大片在线看| 国产精品三区在线| 日韩毛片一区| 久久久这里只有精品视频| 国产乱子伦三级在线播放| 日韩精品一区二区三区三区免费 | 中文字幕伦理免费在线视频| 精品视频在线播放色网色视频| 一道本无吗一区| 精品国产乱码久久久久久婷婷| 国产91在线播放九色| 91在线丨porny丨国产| 午夜av中文字幕| 天堂成人国产精品一区| 妺妺窝人体色www看人体| 日韩美女一区二区三区在线观看| 国产欧美丝袜| 精品久久久久久久久久岛国gif| 国产精品99免视看9| 蜜臀av国内免费精品久久久夜夜| 在线不卡国产精品| 暖暖视频在线免费观看| 精品成人一区二区三区四区| 亚洲天堂视频在线| 欧美视频在线免费| 国产一级一片免费播放放a| 国产精品妹子av| 亚洲天堂最新地址| 久久久777精品电影网影网| 李丽珍裸体午夜理伦片| 国产精品资源网| 天天摸天天舔天天操| 日本色综合中文字幕| 黄色片一级视频| 一本色道久久综合一区| 免费人成自慰网站| 欧美精品国产一区| 色撸撸在线观看| 四虎8848精品成人免费网站| 日韩av图片| 欧美精品一区二区三区中文字幕| 久久99九九| 亚洲警察之高压线| 久久99久久精品国产| 国产精品丝袜在线播放| 91在线视频成人| 国产精品igao视频网网址不卡日韩 | 亚洲欧洲三级| 欧美国产偷国产精品三区| 视频一区视频二区视频三区高| 禁果av一区二区三区| 最新国产精品亚洲| 视频国产一区二区| 国产精品免费看片| 神马午夜精品91| 一区二区三区四区激情 | 激情亚洲一区二区三区四区| 久视频在线观看| 亚洲无线码一区二区三区| 国产精品99re| 一本大道久久a久久综合| 欧美h在线观看| 欧美在线小视频| 91片黄在线观看喷潮| 欧美日韩国产bt| h狠狠躁死你h高h| 亚洲精品一区二区三区四区高清 | 国产欧美日韩激情| www久久久久久久| 亚洲色图制服诱惑| 国产一级二级毛片| 日韩欧美国产骚| 自拍偷拍精品视频| 欧美一三区三区四区免费在线看| 99久久国产免费| 亚洲精品久久久久久下一站| 国内三级在线观看| 日韩一级黄色av| sm在线观看| 日韩免费观看网站| 精品久久免费| 久久99精品久久久久久三级| 日韩一区二区在线免费| 中国老女人av| 国产日韩视频| 国产亚洲视频一区| 成人黄色综合网站| 国产精品国产三级国产专业不| 1区2区3区国产精品| 国产网站在线看| 欧洲国内综合视频| www.色视频| 亚洲人成五月天| 中文字幕有码在线观看| 日本精品一区二区三区在线| 亚洲成人1区| 精品无人区一区二区三区| 欧美独立站高清久久| 黄色网页免费在线观看| 麻豆中文一区二区| 亚洲调教欧美在线| 亚洲素人一区二区| 神马久久久久久久| 欧美不卡一区二区| 国产有码在线| 久久青草福利网站| 国产一区二区三区| 欧美日韩国产综合视频在线| 欧美日韩一区二区国产| 精品欧美黑人一区二区三区| 国产sm主人调教女m视频| 亚洲精品之草原avav久久| 午夜av在线免费观看| 国产精品三级在线| 欧美一区二区三区久久| 欧美另类videosbestsex日本| 日韩不卡在线观看日韩不卡视频| xfplay5566色资源网站| 日韩美女视频19| 中文在线字幕免费观| 日韩电影免费观看中文字幕| 污污片在线免费视频| 国产欧亚日韩视频| 国产一区二区三区网| heyzo国产| 成人激情视频网站| 九九视频在线免费观看| 7878成人国产在线观看| 8888四色奇米在线观看| 日本高清不卡的在线| 加勒比中文字幕精品| 永久免费网站视频在线观看| 黄色小说综合网站| a级黄色免费视频| 在线观看三级视频欧美| 麻豆影视在线| 欧美又大粗又爽又黄大片视频| 97久久亚洲| 久久久久久www| 成人v精品蜜桃久久一区| 丝袜 亚洲 另类 欧美 重口| 欧美日本一区二区| 亚洲欧美视频一区二区| 国产精品视频精品视频| 日韩成人免费| 亚洲无吗一区二区三区| 国产三级精品三级在线专区| 日本视频免费观看| 在线日韩av观看| 91在线亚洲| 伊人色综合影院| 激情五月婷婷综合网| 男人av资源站| 日韩一区二区不卡| а√天堂8资源在线官网| 2014亚洲精品| 伊人影院久久| 9.1成人看片| 在线亚洲人成电影网站色www| 福利成人在线观看| 国产精品爽爽ⅴa在线观看| 手机在线一区二区三区| 中文字幕在线视频一区二区| 亚洲精品视频在线观看网站| 亚洲高清在线观看视频| 亚洲18私人小影院| 国产99久久精品一区二区300| 日日碰狠狠丁香久燥| 中文字幕乱码久久午夜不卡| 91亚洲国产成人久久精品麻豆| 美女性感视频久久久| 成人精品毛片| 国产福利一区视频| 中文字幕综合网| 四虎免费在线观看| 国产91精品在线播放| 久久国产综合| 精品人妻人人做人人爽夜夜爽| 欧美午夜国产| 日韩中文字幕av在线| 奇米888四色在线精品| 国产色无码精品视频国产| 精品精品欲导航| free欧美| 97久久国产亚洲精品超碰热| www精品美女久久久tv| 中文字幕有码无码人妻av蜜桃| 久久深夜福利免费观看| 日韩av网址大全| 午夜免费福利视频在线观看| 亚洲高清免费观看高清完整版在线观看| 日韩欧美在线观看一区二区| 国产人妖伪娘一区91| 99视频一区| 一本色道久久88| 亚洲精品福利资源站| 99精品在免费线偷拍| 国产xxxx振车| 中文字幕不卡在线| 日韩中文字幕影院| 成人免费黄色网| 午夜在线一区二区| 天天干中文字幕|