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

瀏覽器中的跨域問題與 CORS

系統 瀏覽器
跨域,這或許是前端面試中最常碰到的問題了,大概因為跨域問題是瀏覽器環境中的特有問題,而且隨處可見,如同蚊子不僅盯你肉而且處處圍著你轉讓你心煩。

 [[340129]]

Access to XMLHttpRequest at 'xxx' from origin 'xxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

什么是跨域?[1]

跨域,這或許是前端面試中最常碰到的問題了,大概因為跨域問題是瀏覽器環境中的特有問題,而且隨處可見,如同蚊子不僅盯你肉而且處處圍著你轉讓你心煩。「你看,在服務器發起 HTTP 請求就不會有跨域問題的」。

當談到跨域問題的解決方案時,最流行也最簡單的當屬 CORS 了。

CORS

CORS 即跨域資源共享 (Cross-Origin Resource Sharing, CORS)。簡而言之,就是在服務器端的響應中加入幾個標頭,使得瀏覽器能夠跨域訪問資源。

這個響應頭的字段設置就是 Access-Control-Allow-Origin: *以下是最簡單的一個 CORS 請求

  1. GET / HTTP/1.1 
  2. Host: shanyue.tech 
  3. Origin: http://shanyue.tech 
  4. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 
  5.  
  6. HTTP/1.1 200 OK 
  7. Access-Control-Allow-Origin: * 
  8. Content-Type: text/plain; charset=utf-8 
  9. Content-Length: 12 
  10. Date: Wed, 08 Jul 2020 17:03:44 GMT 
  11. Connection: keep-alive 

預請求與 Options

當一個請求跨域且不是簡單請求時就會發起預請求,也就是 Options。如果沒有預請求,萬一有一個毀滅性的 POST 跨域請求直接執行,雖然最后告知瀏覽器你沒有跨域權限,但是損失已造成,豈不虧大的。

以下條件構成了簡單請求:

  1. Method: 請求的方法是 GET、POST 及 HEAD
  2. Header: 請求頭是 Content-Type (有限制)、Accept-Language、Content-Language 等
  3. Content-Type: 請求類型是 application/x-www-form-urlencoded、multipart/form-data 或 text/plain非簡單請求一般需要開發者主動構造,在項目中常見的 Content-Type: application/json 及 Authorization: 為典型的「非簡單請求」。與之有關的三個字段如下:
  • Access-Control-Allow-Methods: 請求所允許的方法, 「用于預請求 (preflight request) 中」
  • Access-Control-Allow-Headers: 請求所允許的頭,「用于預請求 (preflight request) 中」
  • Access-Control-Max-Age: 預請求的緩存時間

寫一個 CORS Middleware

既然 CORS 原理如此簡單,那就拿起鍵盤寫一個簡單的 CORS 中間件吧,CORS 大致是設置幾個響應頭吧

❝關于 cors 的響應頭有哪些?[2]❞

「關于 CORS 的設置即是對 CORS 相關響應頭的設置,因此了解這些 headers 至關重要。無論對于配置的生產者和消費者,及后端和前端而言,都應該掌握!」

以下是關于 CORS 相關的 response headers 及其釋義

  • Access-Control-Allow-Origin: 可以把資源共享給那些域名,支持 * 及 特定域名
  • Access-Control-Allow-Credentials: 請求是否可以帶 cookie
  • Access-Control-Allow-Methods: 請求所允許的方法, 「用于預請求 (preflight request) 中」
  • Access-Control-Allow-Headers: 請求所允許的頭,「用于預請求 (preflight request) 中」
  • Access-Control-Expose-Headers: 那些頭可以在響應中列出
  • Access-Control-Max-Age: 預請求的緩存時間

而關于 CORS 的中間件即是使用默認值與配置來設置這些頭,如 koa/cors 需要傳遞以下參數。

  1. /** 
  2.  * CORS middleware 
  3.  * 
  4.  * @param {Object} [options] 
  5.  *  - {String|Function(ctx)} origin `Access-Control-Allow-Origin`, default is request Origin header 
  6.  *  - {String|Array} allowMethods `Access-Control-Allow-Methods`, default is 'GET,HEAD,PUT,POST,DELETE,PATCH' 
  7.  *  - {String|Array} exposeHeaders `Access-Control-Expose-Headers` 
  8.  *  - {String|Array} allowHeaders `Access-Control-Allow-Headers` 
  9.  *  - {String|Number} maxAge `Access-Control-Max-Age` in seconds 
  10.  *  - {Boolean|Function(ctx)} credentials `Access-Control-Allow-Credentials`, default is false
  11.  *  - {Boolean} keepHeadersOnError Add set headers to `err.header` if an error is thrown 
  12.  * @return {Function} cors middleware 
  13.  * @api public 
  14.  */ 
  15.  
  16. // Example 
  17. app.use(cors()) 

CORS 如何設置多域名

由上,貌似很簡單,只需要服務端設置一下 Access-Control-Allow-Origin 就可以輕松解決問題,但其中的坑有可能比你想象地要多很多!

先說回 Access-Control-Allow-Origin,它所允許的值只有兩個

  • *: 所有域名
  • shanyue.tech: 特定域名

此時,新問題來了:

❝CORS 如果需要指定多個域名怎么辦[3]❞

「如果使用 Access-Control-Allow-Origin: *,則所有的請求不能夠攜帶cookie」,因此這種方案被擯棄。

因此這個問題需要寫代碼來解決,根據請求頭中的 Origin 來設置響應頭 Access-Control-Allow-Origin

  1. 如果請求頭不帶有 Origin,證明未跨域,則不作任何處理
  2. 如果請求頭帶有 Origin,證明跨域,根據 Origin 設置相應的 Access-Control-Allow-Origin: // 獲取 Origin 請求頭const requestOrigin = ctx.get('Origin');// 如果沒有,則跳過if (!requestOrigin) { return await next();}// 設置響應頭ctx.set('Access-Control-Allow-Origin', requestOrigin)

「但此時會出現一個新的問題:緩存」

CORS 與 Vary: Origin

在討論與 Vary 關系時,先拋出一個問題:

❝如何避免 CDN 為 PC 端緩存移動端頁面[4]❞

假設有兩個域名訪問 static.shanyue.tech 的跨域資源

  • foo.shanyue.tech,響應頭中返回 Access-Control-Allow-Origin: foo.shanyue.tech
  • bar.shanyue.tech,響應頭中返回 Access-Control-Allow-Origin: bar.shanyue.tech

看起來一切正常,但平靜的水面下波濤暗涌:

「如果 static.shanyue.tech 資源被 CDN 緩存,bar.shanyue.tech 再次訪問資源時,因緩存問題,因此此時返回的是 Access-Control-Allow-Origin: foo.shanyue.tech,此時會有跨域問題」

此時,Vary: Origin 就上場了,代表為不同的 Origin 緩存不同的資源,這在各個服務器端 CORS 中間件也能體現出來,如以下幾段代碼

此處是一段 koa 關于 CORS 的處理函數: 詳見 koajs/cors[5]

  1. return async function cors(ctx, next) { 
  2.   // If the Origin header is not present terminate this set of steps. 
  3.   // The request is outside the scope of this specification. 
  4.   const requestOrigin = ctx.get('Origin'); 
  5.  
  6.   // Always set Vary header 
  7.   // https://github.com/rs/cors/issues/10 
  8.   ctx.vary('Origin'); 

此處是一段 Go 語言關于 CORS 的處理函數: 詳見 rs/cors[6]

  1. func (c *Cors) handleActualRequest(w http.ResponseWriter, r *http.Request) { 
  2.  headers := w.Header() 
  3.  origin := r.Header.Get("Origin"
  4.  
  5.  // Always set Vary, see https://github.com/rs/cors/issues/10 
  6.   headers.Add("Vary""Origin"

進一步改進相關代碼:

  1. // 獲取 Origin 請求頭 
  2. const requestOrigin = ctx.get('Origin'); 
  3.  
  4. // 不管有沒有跨域都要設置 Vary: Origin 
  5. ctx.set('Vary''Origin'
  6.  
  7. // 如果沒有設置,說明沒有跨域,跳過 
  8. if (!requestOrigin) { 
  9.   return await next(); 
  10.  
  11. // 設置響應頭 
  12. ctx.set('Access-Control-Allow-Origin', requestOrigin) 

「那此時是不關于 CORS 的問題就解決了?從中間件處理層面是這樣的,但仍然有一些服務端中間件使用問題及瀏覽器問題」

HSTS 與 CORS

HSTS (HTTP Strict Transport Security) 為了避免 HTTP 跳轉到 HTTPS 時遭受潛在的中間人攻擊,由瀏覽器本身控制到 HTTPS 的跳轉。如同 CORS 一樣,它也是有一個服務器的響應頭來控制

  1. Strict-Transport-Security: max-age=5184000 

此時瀏覽器訪問該域名時,會使用 307 Internal Redirect,無需服務器干涉,自動跳轉到 HTTPS 請求。

「如果前端訪問 HTTP 跨域請求,此時瀏覽器通過 HSTS 跳轉到 HTTPS,但瀏覽器不會給出相應的 CORS 響應頭部,就會發生跨域問題。」

  1. GET / HTTP/1.1 
  2. Host: shanyue.tech 
  3. Origin: http://shanyue.tech 
  4. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 
  5.  
  6. Access to XMLHttpRequest at 'xxx' from origin 'xxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 

服務器異常處理與跨域異常

當與其他中間件一起工作時,也有可能出現問題,由于不正確的執行順序也可能導致跨域失敗。

假設有一個參數校驗中間件,置于 CORS 中間件上方,由于校驗失敗,并未穿過 CORS 中間件,在前端會報錯跨域失敗,真正的參數校驗問題掩蓋其中。

  1. const Koa = require('koa'
  2. const app = new Koa() 
  3. const cors = require('@koa/cors'
  4.  
  5. // 異常處理中間件 
  6. app.use(async (ctx, next) => { 
  7.   try { 
  8.     await next() 
  9.   } catch (e) { 
  10.     ctx.body = 'hello, error' 
  11.   } 
  12. }) 
  13.  
  14. // 某一個特定時刻肯定會報錯的中間件 
  15. app.use(async (ctx, next) => { 
  16.   throw new Error('hello, world'
  17. }) 
  18.  
  19. // CORS 中間件 
  20. app.use(cors()) 
  21.  
  22. app.listen(3000) 

總結

本篇文章介紹了跨域問題及其相應的 CORS 解決方案,并列出了若干細節問題。

CORS 通過服務器端設置若干響應頭來正常工作

Access-Control-Allow-Origin: * 無法攜帶 Cookie,因此以此為多域名跨域設置有缺陷

服務器端通過響應頭 Origin 來判斷是否為跨域請求,并以此設置多域名跨域,但要加上 Vary: Origin在編碼過程中要注意 HSTS 配置及服務器的中間件順序帶來的潛在風險

Reference

[1]什么是跨域?:

https://q.shanyue.tech/fe/js/216.html[2]關于 cors 的響應頭有哪些?:

https://q.shanyue.tech/base/http/328.html[3]CORS 如果需要指定多個域名怎么辦:

https://q.shanyue.tech/base/http/364.html[4]如何避免 CDN 為 PC 端緩存移動端頁面:

https://q.shanyue.tech/base/http/330.html[5]koajs/cors:

https://github.com/koajs/cors/blob/master/index.js#L54[6]rs/cors:

https://github.com/rs/cors/blob/be1c7e127af9fce006600894df5c5731d99cdc82/cors.go#L268

本文轉載自微信公眾號「全棧成長之路」,可以通過以下二維碼關注。轉載本文請聯系全棧成長之路公眾號。

 

 

責任編輯:武曉燕 來源: 全棧成長之路
相關推薦

2022-04-29 09:11:14

CORS瀏覽器

2019-04-10 10:32:16

CORSNginx反向代理

2015-04-24 10:37:40

Web安全瀏覽器跨域訪問

2023-12-20 14:42:59

2023-12-12 09:45:16

前端瀏覽器

2021-06-15 07:32:59

Cookie和Sess實現跨域

2014-08-19 10:36:02

AngularCORS

2021-06-25 09:04:39

Cors跨域JSONP vs CO

2010-09-14 14:18:09

CSS跨瀏覽器開發

2024-01-31 07:55:52

2024-08-23 09:00:18

開發跨域請求

2010-05-31 10:11:02

2022-03-21 07:35:34

處理方式跨域

2022-08-17 14:04:18

COOPCOEP瀏覽器

2013-11-20 14:25:45

瀏覽器重繪

2023-11-17 09:38:21

2021-06-10 18:11:02

Cors跨域Web開發Cors

2011-07-15 09:56:54

NPAPI開發火狐

2010-04-05 21:57:14

Netscape瀏覽器

2009-03-25 09:11:35

Firefox瀏覽器
點贊
收藏

51CTO技術棧公眾號

欧美日韩国产成人在线91| 91在线观看一区二区| 久久九九全国免费精品观看| aaaaa黄色片| 黑人巨大亚洲一区二区久| 国产精品视频线看| 国内精品二区| 国产老妇伦国产熟女老妇视频| 欧美精品二区| 中文字幕精品视频| 国产精品久久不卡| 久久视频免费| 欧美在线free| 精品视频在线观看一区| 色大18成网站www在线观看| 成人免费va视频| 国产在线观看91精品一区| 日韩人妻无码一区二区三区99| 久久国产亚洲精品| 亚洲人av在线影院| 国产成人精品一区二区三区在线观看 | 久久国产精品99精品国产| 97视频免费观看| 欧美成人手机视频| 天天综合久久| 中文字幕在线亚洲| 偷拍夫妻性生活| 久久97精品| 日韩免费视频一区| 色综合五月婷婷| 免费在线观看一区| 色哟哟欧美精品| 激情伊人五月天| 久久99亚洲网美利坚合众国| 亚洲女子a中天字幕| 日韩一区二区电影在线观看| 手机在线观看毛片| 成人动漫在线一区| 成人综合电影| 亚洲第一黄色片| 国产成人av电影免费在线观看| 国产精自产拍久久久久久| 香蕉影院在线观看| 欧美亚洲一区| 91成人国产在线观看| 国产在线一二区| 欧美视频四区| 欧美激情区在线播放| 国产精品久久久免费看| 日韩精品久久| 日韩在线观看免费全| 女人裸体性做爰全过| 欧美精品一区二区久久| 亚洲图片制服诱惑| 特级西西人体高清大胆| 97视频热人人精品免费| 日韩视频欧美视频| 日本aⅴ在线观看| 欧美日本亚洲韩国国产| 欧美精品在线视频观看| 国产亚洲精品av| 亚洲午夜电影| 欧美一级大胆视频| 亚洲国产成人精品女人久久| 另类天堂av| 国产精品久久久久国产a级| 亚洲av无码乱码国产精品fc2| 日本中文字幕不卡| 91精品久久久久久久久| 国产黄色片av| 不卡一二三区首页| 欧美主播一区二区三区美女 久久精品人| 少妇激情av一区二区| 国产无一区二区| 在线成人av电影| 污视频免费在线观看| 亚洲成人av电影在线| jizzjizzxxxx| 日韩精品第二页| 精品久久一二三区| 国产精品揄拍100视频| 日韩精品午夜| 欧美精品xxx| 国产一区二区视频网站| 国产一区二区三区国产| 久久精品magnetxturnbtih| 国产乱子伦三级在线播放 | 精品少妇theporn| 99成人在线| 国产日韩欧美视频在线| 丰满人妻一区二区三区四区53| 91丨九色丨蝌蚪富婆spa| 色一情一乱一伦一区二区三欧美| 91香蕉在线观看| 色婷婷精品大在线视频| 午夜影院免费观看视频| 丝袜连裤袜欧美激情日韩| 久久久av网站| 国产精品一区无码| 国产成人一级电影| 日本一区二区三不卡| 久草在线视频资源| 欧美日韩精品是欧美日韩精品| av不卡中文字幕| 日韩欧美视频| 国产69精品久久久久久| 国产草草影院ccyycom| 久久久久久久一区| 免费人成在线观看视频播放| 欧美日韩卡一| 亚洲欧美国产视频| 亚洲国产精品午夜在线观看| 另类调教123区| 蜜桃av噜噜一区二区三| 国产偷倩在线播放| 在线成人免费视频| 懂色av蜜桃av| 久久精品亚洲| 狼狼综合久久久久综合网| 中文字幕中文字幕在线中高清免费版| 在线观看日韩高清av| 午夜av免费看| 国模大胆一区二区三区| 成人两性免费视频| yourporn在线观看中文站| 欧美日韩国产精品| 中文字幕99页| 国内在线观看一区二区三区| 成人av番号网| 在线观看免费黄色| 欧美性一级生活| 最近中文字幕免费视频| 午夜在线精品| 久久久久国产精品视频| 国产美女高潮在线观看| 日韩你懂的在线观看| 日韩精品一区二区亚洲av性色 | 国产欧美精品一区二区三区介绍| 四虎精品在线| 色婷婷精品久久二区二区蜜臂av| 中文字幕一区二区三区人妻不卡| 99亚洲伊人久久精品影院红桃| av成人在线电影| 日本三级在线观看网站| 日韩欧美视频一区| 妺妺窝人体色www在线下载| 国内不卡的二区三区中文字幕| 久久免费看毛片| 久久久久久久久成人| 久久av资源网站| 精品久久久免费视频| 一区二区三区视频在线看| 国产黄色一区二区三区| 欧美日韩精品| 国产伦精品一区二区三区照片| 美女精品视频| 日韩电视剧在线观看免费网站| 可以免费看的av毛片| 91色视频在线| 国产九九在线视频| 久久精品一区二区不卡| 91黄色国产视频| 欧美videosex性欧美黑吊| 日韩精品一区二区三区视频播放 | 欧亚av在线| 亚洲桃花岛网站| 亚洲专区在线播放| 亚洲综合男人的天堂| 欧美 变态 另类 人妖| 视频一区二区中文字幕| 中文字幕色一区二区| 日韩视频1区| 欧洲精品久久久| 福利成人在线观看| 日韩欧美国产电影| 精品欧美一区二区三区免费观看| 国产人伦精品一区二区| 日韩成人精品视频在线观看| 欧美一区影院| 女同一区二区| 国产日韩欧美中文在线| 欧美性视频网站| 黄色视屏免费在线观看| 亚洲精品久久久久久下一站| 中文字幕人成人乱码亚洲电影| 亚洲综合免费观看高清完整版在线 | 午夜精品视频在线| 国产爆初菊在线观看免费视频网站| 在线不卡一区二区| 国产又爽又黄的视频| 国产精品久久精品日日| 国模私拍在线观看| 美女一区二区三区| 欧美精品久久久久久久自慰| 成人羞羞网站入口| 国产偷久久久精品专区| 日韩护士脚交太爽了| 欧美亚洲一级片| 亚洲91av| 中文字幕日韩欧美| 四季av日韩精品一区| 91麻豆精品国产91久久久久| 国产黄色免费观看| 亚洲一区二区三区四区中文字幕| 国产精成人品免费观看| 懂色av一区二区在线播放| 一区二区三区国产免费| 亚洲伊人观看| 欧美日韩dvd| 日韩a一区二区| 久久一区二区三区av| 日本一区二区乱| 成人免费看吃奶视频网站| 亚洲成人人体| 91国偷自产一区二区三区的观看方式| 免费黄色网页在线观看| 国产亚洲福利一区| 丝袜+亚洲+另类+欧美+变态| 亚洲精品一区二区三区在线观看| 国产又粗又长又大视频| 欧美影片第一页| 亚洲欧美偷拍一区| 亚洲成人午夜影院| 久久免费公开视频| 亚洲色图欧洲色图婷婷| 性少妇xx生活| 国产精品看片你懂得| 天天躁日日躁aaaa视频| 91偷拍与自偷拍精品| 99久久久无码国产精品性波多 | 免费精品视频一区| 美国成人xxx| 国产综合精品一区二区三区| 97视频一区| 国产一区二区高清不卡| 91成人午夜| 成人av资源| 91精品丝袜国产高跟在线| 亚洲一区亚洲二区| 激情五月综合婷婷| 亚洲jizzjizz日本少妇| 欧美片网站免费| 999在线观看免费大全电视剧| 国产精品美女久久久久| 91久久久久久久久久久| 精品国产亚洲一区二区在线观看 | 亚洲精品色图| 日本少妇高潮喷水视频| 香蕉视频成人在线观看| 苍井空浴缸大战猛男120分钟| 久久亚洲国产精品一区二区| 欧美 日韩 国产 激情| 免费久久99精品国产| 91精产国品一二三产区别沈先生| 精品一区二区三区影院在线午夜 | 中文字幕日韩精品一区| 国产一二三四视频| 亚洲精品videosex极品| 久久网免费视频| 精品毛片网大全| 天堂网中文字幕| 欧美日韩你懂得| 国产xxxxxx| 亚洲精品99久久久久中文字幕| 日本中文字幕一区二区有码在线| 国产亚洲一区精品| 主播国产精品| 欧美在线视频免费| 国产精品99久久久久久董美香 | 夜夜嗨av一区二区三区网页 | 欧美性猛交xxxx黑人交| 91在线观看喷潮| 亚洲第一视频网| 成人在线二区| 美女av一区二区| 国产激情视频在线看| 国产精品极品尤物在线观看| 久久精品一级| 久久一区二区三区欧美亚洲| 欧美a级片视频| 国产九色porny| 日韩av网站在线观看| wwwxx日本| 欧美国产成人精品| 久久午夜鲁丝片午夜精品| 色八戒一区二区三区| 99草在线视频| 亚洲欧美日韩一区二区三区在线| 国产在线更新| 人人爽久久涩噜噜噜网站| 高清一区二区三区av| 老牛影视免费一区二区| 欧美国产另类| 无限资源日本好片| www.av精品| 性欧美疯狂猛交69hd| 欧美性生交xxxxxdddd| 国产视频手机在线观看| 国产亚洲一区二区在线| www在线观看黄色| 91精品久久久久久久久中文字幕| 精品国产影院| 一本大道东京热无码aⅴ| 日韩高清不卡一区二区三区| 伦理片一区二区| 亚洲欧美日韩人成在线播放| 中文人妻av久久人妻18| 精品日韩欧美一区二区| 免费av不卡| 国产91在线播放九色快色| 成人资源在线| 午夜探花在线观看| 蜜臀av一区二区在线免费观看| 加勒比精品视频| 午夜视频在线观看一区二区三区| 国产熟女一区二区丰满| 中文字幕日韩精品在线| 欧美人体一区二区三区| 激情一区二区三区| 欧美精品福利| 国模大尺度视频| 国产精品久久久久久久蜜臀| 色一情一乱一伦| 日韩av在线网| аⅴ资源天堂资源库在线| 99精品在线直播| 在线观看国产精品入口| 一级淫片在线观看| 国产精品国产馆在线真实露脸 | 香蕉久久一区| 亚洲午夜激情| 美女视频一区二区三区| 我不卡一区二区| 日本韩国精品在线| 精品三级久久久久久久电影聊斋| 51色欧美片视频在线观看| 欧美午夜寂寞| 成年人视频观看| 99re免费视频精品全部| 国产精品黄色大片| 亚洲久久久久久久久久久| 伊人色综合一区二区三区影院视频| 国产伦视频一区二区三区| 亚洲人人精品| 无码熟妇人妻av| 色天天综合久久久久综合片| 户外极限露出调教在线视频| 国产成人精品在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲黄色av网址| 中文字幕色av一区二区三区| 91中文字幕在线播放| 久久精品中文字幕电影| 91麻豆精品国产综合久久久| 日韩精品一区二区三区电影| 国产成人免费网站| 日韩久久久久久久久| 亚洲欧美国产一本综合首页| 国产免费不卡| 一区二区三视频| 国产精品亚洲一区二区三区在线| 久久久无码精品亚洲国产| 亚洲福利视频二区| 韩国久久久久久| 翔田千里亚洲一二三区| 精品亚洲aⅴ乱码一区二区三区| 波多野结衣爱爱视频| 亚洲精品在线免费播放| 日韩大片欧美大片| 亚洲欧洲免费无码| 国产河南妇女毛片精品久久久| 国产无码精品久久久| 亚洲天堂男人天堂| 国产亚洲久久| 日韩欧美一区二| 中文字幕一区二区视频| 亚洲国产精品久久久久久久| 51色欧美片视频在线观看| 99热国内精品| 性色av蜜臀av浪潮av老女人| 色婷婷综合视频在线观看| 国产网友自拍视频导航网站在线观看| 国产视色精品亚洲一区二区| 美女视频黄 久久| 国产一级中文字幕| 一区二区三区日韩在线| 一区二区日韩| 自拍偷拍 国产| 亚洲一区二区在线免费观看视频 | 日本一区二区三区四区| 亚洲av无码一区二区乱子伦| 国产999在线| 亚洲激情婷婷| 免费成人美女女在线观看| 日韩av最新在线观看| www.成人| 日韩一级理论片| 五月综合激情婷婷六月色窝| 里番在线观看网站| 欧美日韩一区二区三|