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

SpringBoot 如何防御 CSRF 攻擊?

安全 應(yīng)用安全
CSRF 就是跨域請(qǐng)求偽造,英文全稱(chēng)是 Cross Site Request Forgery。這是一種非常常見(jiàn)的 Web 攻擊方式,其實(shí)是很好防御的,但是由于經(jīng)常被很多開(kāi)發(fā)者忽略,進(jìn)而導(dǎo)致很多網(wǎng)站實(shí)際上都存在 CSRF 攻擊的安全隱患。

[[403473]]

CSRF 就是跨域請(qǐng)求偽造,英文全稱(chēng)是 Cross Site Request Forgery。

這是一種非常常見(jiàn)的 Web 攻擊方式,其實(shí)是很好防御的,但是由于經(jīng)常被很多開(kāi)發(fā)者忽略,進(jìn)而導(dǎo)致很多網(wǎng)站實(shí)際上都存在 CSRF 攻擊的安全隱患。

今天松哥就來(lái)和大家聊一聊什么是 CSRF 攻擊以及 CSRF 攻擊該如何防御。

1.CSRF原理

想要防御 CSRF 攻擊,那我們得先搞清楚什么是 CSRF 攻擊,松哥通過(guò)下面一張圖,來(lái)和大家梳理 CSRF 攻擊流程:

其實(shí)這個(gè)流程很簡(jiǎn)單:

  • 假設(shè)用戶打開(kāi)了招商銀行網(wǎng)上銀行網(wǎng)站,并且登錄。
  • 登錄成功后,網(wǎng)上銀行會(huì)返回 Cookie 給前端,瀏覽器將 Cookie 保存下來(lái)。
  • 用戶在沒(méi)有登出網(wǎng)上銀行的情況下,在瀏覽器里邊打開(kāi)了一個(gè)新的選項(xiàng)卡,然后又去訪問(wèn)了一個(gè)危險(xiǎn)網(wǎng)站。
  • 這個(gè)危險(xiǎn)網(wǎng)站上有一個(gè)超鏈接,超鏈接的地址指向了招商銀行網(wǎng)上銀行。
  • 用戶點(diǎn)擊了這個(gè)超鏈接,由于這個(gè)超鏈接會(huì)自動(dòng)攜帶上瀏覽器中保存的 Cookie,所以用戶不知不覺(jué)中就訪問(wèn)了網(wǎng)上銀行,進(jìn)而可能給自己造成了損失。

CSRF 的流程大致就是這樣,接下來(lái)松哥用一個(gè)簡(jiǎn)單的例子和小伙伴們展示一下 CSRF 到底是怎么回事。

2.CSRF實(shí)踐

接下來(lái),我創(chuàng)建一個(gè)名為 csrf-1 的 Spring Boot 項(xiàng)目,這個(gè)項(xiàng)目相當(dāng)于我們上面所說(shuō)的網(wǎng)上銀行網(wǎng)站,創(chuàng)建項(xiàng)目時(shí)引入 Web 和 Spring Security 依賴(lài),如下:

創(chuàng)建成功后,方便起見(jiàn),我們直接將 Spring Security 用戶名/密碼 配置在 application.properties 文件中:

  1. spring.security.user.name=javaboy 
  2. spring.security.user.password=123 

然后我們提供兩個(gè)測(cè)試接口:

  1. @RestController 
  2. public class HelloController { 
  3.     @PostMapping("/transfer"
  4.     public void transferMoney(String nameInteger money) { 
  5.         System.out.println("name = " + name); 
  6.         System.out.println("money = " + money); 
  7.     } 
  8.     @GetMapping("/hello"
  9.     public String hello() { 
  10.         return "hello"
  11.     } 

假設(shè) /transfer 是一個(gè)轉(zhuǎn)賬接口(這里是假設(shè),主要是給大家演示 CSRF 攻擊,真實(shí)的轉(zhuǎn)賬接口比這復(fù)雜)。

最后我們還需要配置一下 Spring Security,因?yàn)?Spring Security 中默認(rèn)是可以自動(dòng)防御 CSRF 攻擊的,所以我們要把這個(gè)關(guān)閉掉:

  1. @Configuration 
  2. public class SecurityConfig extends WebSecurityConfigurerAdapter { 
  3.     @Override 
  4.     protected void configure(HttpSecurity http) throws Exception { 
  5.         http.authorizeRequests().anyRequest().authenticated() 
  6.                 .and() 
  7.                 .formLogin() 
  8.                 .and() 
  9.                 .csrf() 
  10.                 .disable(); 
  11.     } 

配置完成后,我們啟動(dòng) csrf-1 項(xiàng)目。

接下來(lái),我們?cè)賱?chuàng)建一個(gè) csrf-2 項(xiàng)目,這個(gè)項(xiàng)目相當(dāng)于是一個(gè)危險(xiǎn)網(wǎng)站,為了方便,這里創(chuàng)建時(shí)我們只需要引入 web 依賴(lài)即可。

項(xiàng)目創(chuàng)建成功后,首先修改項(xiàng)目端口:

  1. server.port=8081 

然后我們?cè)?resources/static 目錄下創(chuàng)建一個(gè) hello.html ,內(nèi)容如下:

  1. <body> 
  2. <form action="http://localhost:8080/transfer" method="post"
  3.     <input type="hidden" value="javaboy" name="name"
  4.     <input type="hidden" value="10000" name="money"
  5.     <input type="submit" value="點(diǎn)擊查看美女圖片"
  6. </form> 
  7. </body> 

 

 

 

這里有一個(gè)超鏈接,超鏈接的文本是點(diǎn)擊查看美女圖片,當(dāng)你點(diǎn)擊了超鏈接之后,會(huì)自動(dòng)請(qǐng)求 http://localhost:8080/transfer 接口,同時(shí)隱藏域還攜帶了兩個(gè)參數(shù)。

配置完成后,就可以啟動(dòng) csrf-2 項(xiàng)目了。

接下來(lái),用戶首先訪問(wèn) csrf-1 項(xiàng)目中的接口,在訪問(wèn)的時(shí)候需要登錄,用戶就執(zhí)行了登錄操作,訪問(wèn)完整后,用戶并沒(méi)有執(zhí)行登出操作,然后用戶訪問(wèn) csrf-2 中的頁(yè)面,看到了超鏈接,好奇這美女到底長(zhǎng)啥樣,一點(diǎn)擊,結(jié)果錢(qián)就被人轉(zhuǎn)走了。

3.CSRF防御

先來(lái)說(shuō)說(shuō)防御思路。

CSRF 防御,一個(gè)核心思路就是在前端請(qǐng)求中,添加一個(gè)隨機(jī)數(shù)。

因?yàn)樵?CSRF 攻擊中,黑客網(wǎng)站其實(shí)是不知道用戶的 Cookie 具體是什么的,他是讓用戶自己發(fā)送請(qǐng)求到網(wǎng)上銀行這個(gè)網(wǎng)站的,因?yàn)檫@個(gè)過(guò)程會(huì)自動(dòng)攜帶上 Cookie 中的信息。

所以我們的防御思路是這樣:用戶在訪問(wèn)網(wǎng)上銀行時(shí),除了攜帶 Cookie 中的信息之外,還需要攜帶一個(gè)隨機(jī)數(shù),如果用戶沒(méi)有攜帶這個(gè)隨機(jī)數(shù),則網(wǎng)上銀行網(wǎng)站會(huì)拒絕該請(qǐng)求。黑客網(wǎng)站誘導(dǎo)用戶點(diǎn)擊超鏈接時(shí),會(huì)自動(dòng)攜帶上 Cookie 中的信息,但是卻不會(huì)自動(dòng)攜帶隨機(jī)數(shù),這樣就成功的避免掉 CSRF 攻擊了。

Spring Security 中對(duì)此提供了很好的支持,我們一起來(lái)看下。

3.1 默認(rèn)方案

Spring Security 中默認(rèn)實(shí)際上就提供了 csrf 防御,但是需要開(kāi)發(fā)者做的事情比較多。

首先我們來(lái)創(chuàng)建一個(gè)新的 Spring Boot 工程,創(chuàng)建時(shí)引入 Spring Security、Thymeleaf 和 web 依賴(lài)。

項(xiàng)目創(chuàng)建成功后,我們還是在 application.properties 中配置用戶名/密碼:

  1. spring.security.user.name=javaboy 
  2. spring.security.user.password=123 

接下來(lái),我們提供一個(gè)測(cè)試接口:

  1. @Controller 
  2. public class HelloController { 
  3.     @PostMapping("/hello"
  4.     @ResponseBody 
  5.     public String hello() { 
  6.         return "hello"
  7.     } 

注意,這個(gè)測(cè)試接口是一個(gè) POST 請(qǐng)求,因?yàn)槟J(rèn)情況下,GET、HEAD、TRACE 以及 OPTIONS 是不需要驗(yàn)證 CSRF 攻擊的。

然后,我們?cè)?resources/templates 目錄下,新建一個(gè) thymeleaf 模版,如下:

  1. <body> 
  2. <form action="/hello" method="post"
  3.     <input type="hidden" th:value="${_csrf.token}" th:name="${_csrf.parameterName}"
  4.     <input type="submit" value="hello"
  5. </form> 
  6. </body> 

 

 

 

注意,在發(fā)送 POST 請(qǐng)求的時(shí)候,還額外攜帶了一個(gè)隱藏域,隱藏域的 key 是 ${_csrf.parameterName},value 則是 ${_csrf.token}。

這兩個(gè)值服務(wù)端會(huì)自動(dòng)帶過(guò)來(lái),我們只需要在前端渲染出來(lái)即可。

接下來(lái)給前端 hello.html 頁(yè)面添加一個(gè)控制器,如下:

  1. @GetMapping("/hello"
  2. public String hello2() { 
  3.     return "hello"

添加完成后,啟動(dòng)項(xiàng)目,我們?cè)L問(wèn) hello 頁(yè)面,在訪問(wèn)時(shí)候,需要先登錄,登錄成功之后,我們可以看到登錄請(qǐng)求中也多了一個(gè)參數(shù),如下:

可以看到,這里也多了 _csrf 參數(shù)。

這里我們用了 Spring Security 的默認(rèn)登錄頁(yè)面,如果大家使用自定義登錄頁(yè)面,可以參考上面 hello.html 的寫(xiě)法,通過(guò)一個(gè)隱藏域傳遞 _csrf 參數(shù)。

訪問(wèn)到 hello 頁(yè)面之后,再去點(diǎn)擊按鈕,就可以訪問(wèn)到 hello 接口了。

小伙伴們可以自行嘗試在 hello.html 頁(yè)面中,去掉 _csrf 參數(shù),看看訪問(wèn) hello 接口的效果。

這是 Spring Security 中默認(rèn)的方案,通過(guò) Model 將相關(guān)的數(shù)據(jù)帶到前端來(lái)。

如果你的項(xiàng)目是前后端不分項(xiàng)目,這種方案就可以了,如果你的項(xiàng)目是前后端分離項(xiàng)目,這種方案很明顯不夠用。

3.2 前后端分離方案

如果是前后端分離項(xiàng)目,Spring Security 也提供了解決方案。

這次不是將 _csrf 放在 Model 中返回前端了,而是放在 Cookie 中返回前端,配置方式如下:

  1. @Configuration 
  2. public class SecurityConfig extends WebSecurityConfigurerAdapter { 
  3.     @Override 
  4.     protected void configure(HttpSecurity http) throws Exception { 
  5.         http.authorizeRequests().anyRequest().authenticated() 
  6.                 .and() 
  7.                 .formLogin() 
  8.                 .and() 
  9.                 .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); 
  10.     } 

有小伙伴可能會(huì)說(shuō)放在 Cookie 中不是又被黑客網(wǎng)站盜用了嗎?其實(shí)不會(huì)的,大家注意如下兩個(gè)問(wèn)題:

  1. 黑客網(wǎng)站根本不知道你的 Cookie 里邊存的啥,他也不需要知道,因?yàn)?CSRF 攻擊是瀏覽器自動(dòng)攜帶上 Cookie 中的數(shù)據(jù)的。
  2. 我們將服務(wù)端生成的隨機(jī)數(shù)放在 Cookie 中,前端需要從 Cookie 中自己提取出來(lái) _csrf 參數(shù),然后拼接成參數(shù)傳遞給后端,單純的將 Cookie 中的數(shù)據(jù)傳到服務(wù)端是沒(méi)用的。

理解透了上面兩點(diǎn),你就會(huì)發(fā)現(xiàn) _csrf 放在 Cookie 中是沒(méi)有問(wèn)題的,但是大家注意,配置的時(shí)候我們通過(guò) withHttpOnlyFalse 方法獲取了 CookieCsrfTokenRepository 的實(shí)例,該方法會(huì)設(shè)置 Cookie 中的 HttpOnly 屬性為 false,也就是允許前端通過(guò) js 操作 Cookie(否則你就沒(méi)有辦法獲取到 _csrf)。

配置完成后,重啟項(xiàng)目,此時(shí)我們就發(fā)現(xiàn)返回的 Cookie 中多了一項(xiàng):

接下來(lái),我們通過(guò)自定義登錄頁(yè)面,來(lái)看看前端要如何操作。

首先我們?cè)?resources/static 目錄下新建一個(gè) html 頁(yè)面叫做 login.html:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>Title</title> 
  6.     <script src="js/jquery.min.js"></script> 
  7.     <script src="js/jquery.cookie.js"></script> 
  8. </head> 
  9. <body> 
  10. <div> 
  11.     <input type="text" id="username"
  12.     <input type="password" id="password"
  13.     <input type="button" value="登錄" id="loginBtn"
  14. </div> 
  15. <script> 
  16.     $("#loginBtn").click(function () { 
  17.         let _csrf = $.cookie('XSRF-TOKEN'); 
  18.         $.post('/login.html',{username:$("#username").val(),password:$("#password").val(),_csrf:_csrf},function (data) { 
  19.             alert(data); 
  20.         }) 
  21.     }) 
  22. </script> 
  23. </body> 
  24. </html> 

 

 

 

 

 

這段 html 我給大家解釋下:

  1. 首先引入 jquery 和 jquery.cookie ,方便我們一會(huì)操作 Cookie。
  2. 定義三個(gè) input,前兩個(gè)是用戶名和密碼,第三個(gè)是登錄按鈕。
  3. 點(diǎn)擊登錄按鈕之后,我們先從 Cookie 中提取出 XSRF-TOKEN,這也就是我們要上傳的 csrf 參數(shù)。
  4. 通過(guò)一個(gè) POST 請(qǐng)求執(zhí)行登錄操作,注意攜帶上 _csrf 參數(shù)。

服務(wù)端我們也稍作修改,如下:

  1. @Configuration 
  2. public class SecurityConfig extends WebSecurityConfigurerAdapter { 
  3.     @Override 
  4.     public void configure(WebSecurity web) throws Exception { 
  5.         web.ignoring().antMatchers("/js/**"); 
  6.     } 
  7.  
  8.     @Override 
  9.     protected void configure(HttpSecurity http) throws Exception { 
  10.         http.authorizeRequests().anyRequest().authenticated() 
  11.                 .and() 
  12.                 .formLogin() 
  13.                 .loginPage("/login.html"
  14.                 .successHandler((req,resp,authentication)->{ 
  15.                     resp.getWriter().write("success"); 
  16.                 }) 
  17.                 .permitAll() 
  18.                 .and() 
  19.                 .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); 
  20.     } 

一方面這里給 js 文件放行。

另一方面配置一下登錄頁(yè)面,以及登錄成功的回調(diào),這里簡(jiǎn)單期間,登錄成功的回調(diào)我就給一個(gè)字符串就可以了。大家感興趣的話,可以查看本系列前面文章,有登錄成功后回調(diào)的詳細(xì)解釋。

OK,所有事情做完之后,我們?cè)L問(wèn) login.html 頁(yè)面,輸入用戶名密碼進(jìn)行登錄,結(jié)果如下:

可以看到,我們的 _csrf 配置已經(jīng)生效了。

小伙伴們可以自行嘗試從登錄參數(shù)中去掉 _csrf,然后再看看效果。

4.小結(jié)

好了,今天主要和小伙伴們介紹了 csrf 攻擊以及如何防御的問(wèn)題。大家看到,csrf 攻擊主要是借助了瀏覽器默認(rèn)發(fā)送 Cookie 的這一機(jī)制,所以如果你的前端是 App、小程序之類(lèi)的應(yīng)用,不涉及瀏覽器應(yīng)用的話,其實(shí)可以忽略這個(gè)問(wèn)題,如果你的前端包含瀏覽器應(yīng)用的話,這個(gè)問(wèn)題就要認(rèn)真考慮了。

好了 ,本文就說(shuō)到這里,本文相關(guān)案例我已經(jīng)上傳到 GitHub ,大家可以自行下載:https://github.com/lenve/spring-security-samples

本文轉(zhuǎn)載自微信公眾號(hào)「江南一點(diǎn)雨」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系江南一點(diǎn)雨公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 江南一點(diǎn)雨
相關(guān)推薦

2016-09-30 15:59:41

2009-10-29 17:47:31

2010-09-13 09:20:21

2019-02-22 09:00:00

2018-10-12 15:50:02

2012-11-30 14:35:17

2021-06-07 14:06:19

Spring SecuCSRF防御

2012-08-17 09:25:59

2021-06-30 07:25:35

開(kāi)發(fā)JavaXSS

2024-10-12 10:57:21

2012-11-30 14:54:48

2015-07-23 10:18:45

2018-05-21 15:14:10

2013-11-04 09:15:58

2022-05-19 11:29:14

計(jì)時(shí)攻擊SpringSecurity

2014-06-26 11:33:42

2020-12-01 16:50:18

CC攻擊DDoS攻擊網(wǎng)絡(luò)攻擊

2025-11-10 09:00:00

2013-04-25 11:04:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一级免费视频| 亚洲精品99久久久久| 99热一区二区三区| www.我爱av| 久久久久久亚洲精品杨幂换脸| 这里只有精品久久| 中文字幕在线观看91| 婷婷综合六月| 亚洲激情六月丁香| 欧美日韩亚洲在线| 成人1区2区3区| 丝袜诱惑制服诱惑色一区在线观看| www高清在线视频日韩欧美| 在线播放第一页| 久久久加勒比| 欧美日韩午夜视频在线观看| 尤物一区二区三区| 婷婷亚洲一区二区三区| 精品亚洲成a人在线观看| 97精品在线视频| 三级在线观看免费大全| 亚洲人亚洲人色久| 日韩精品一区在线观看| 欧美日韩亚洲自拍| 亚洲精品中文字幕| 亚洲无线码一区二区三区| 午夜精品一区二区在线观看| 欧美一级特黄aaaaaa| 只有这里有精品| 久久黄色精品视频| 综合激情网站| 久久精品国产一区二区三区| 成人精品999| 美女一区二区在线观看| 日韩一区二区精品葵司在线| 网站一区二区三区| 不卡福利视频| 色综合久久综合网欧美综合网 | 欧美日韩在线精品一区二区三区激情综 | 国产福利一区二区精品秒拍| 9191精品国产综合久久久久久| 国产亚洲精品网站| 国产盗摄精品一区二区酒店| 亚洲精品日日夜夜| 中国 免费 av| 黄色网页在线播放| 中文字幕色av一区二区三区| 亚洲图片小说在线| 91免费在线| 国产精品色眯眯| 日韩成人av网站| 亚洲色大成网站www| av中文字幕在线不卡| 高清国产在线一区| 懂色av成人一区二区三区| 国产福利91精品一区二区三区| 成人做爰www免费看视频网站| 中文字幕视频一区二区| 蜜臀av国产精品久久久久 | 视频一区日韩精品| 日韩欧美国产三级电影视频| 丰满人妻一区二区三区大胸| 日韩08精品| 亚洲成人xxx| 六十路息与子猛烈交尾| 亚洲黄色录像| 亚洲色图美腿丝袜| 国产一区二区三区视频播放| 99精品综合| 久久夜精品va视频免费观看| 欧美精品99久久久| 99re国产精品| 国产精品igao视频| 中文字幕乱码人妻二区三区| 捆绑紧缚一区二区三区视频| 亚洲综合日韩中文字幕v在线| 超碰在线观看av| 26uuu国产一区二区三区| 丝袜美腿玉足3d专区一区| 麻豆网在线观看| 一区二区三区不卡在线观看| 岛国大片在线播放| 欧美黑人疯狂性受xxxxx野外| 欧美午夜寂寞影院| 丰满饥渴老女人hd| 日韩激情啪啪| www.99久久热国产日韩欧美.com | 五月婷婷色综合| 最近免费中文字幕中文高清百度| 美女视频一区| 亚洲国产精品久久精品怡红院| 中文字幕一区二区久久人妻网站| 欧美精品一区二区久久| 精品少妇一区二区30p| 丁香六月婷婷综合| 国产一区久久久| 久久久久一区二区| 久久精品视频免费看 | 欧美视频xxxx| 国产99一区视频免费| 欧美日韩一区二区三区在线视频| 黄网页在线观看| 欧美日韩综合视频| 亚洲一级片免费观看| 日韩成人av在线资源| 精品国产一区av| 日韩欧美成人一区二区三区| 免费观看30秒视频久久| 国产一区二区黄色| 国内精品久久久久久野外| 精品久久久久久中文字幕大豆网| wwwwwxxxx日本| 午夜精品福利影院| 欧美日韩国产成人在线观看| 亚洲图片欧美日韩| 成人av电影在线观看| 亚洲天堂av免费在线观看| 亚洲欧美一区二区三区| 日韩一区二区三区精品视频| 亚洲一级黄色录像| 亚洲尤物精选| 国产精品久久久久久久久婷婷| 婷婷五月在线视频| 日韩欧美中文第一页| 欧洲熟妇的性久久久久久| 婷婷成人基地| 国产精品直播网红| 黄网在线免费| 欧美三级免费观看| 污污内射在线观看一区二区少妇 | 亚洲国产精品成人久久综合一区| 国产69精品久久久久久久| 国产精品777777在线播放| 国产亚洲精品久久久久久777 | 精品视频1区2区3区| 不卡一区二区在线观看| av成人毛片| 国产一区二区三区四区五区加勒比 | 日韩a级在线观看| 九九99久久精品在免费线bt| 日韩一区二区三区在线播放| 中国a一片一级一片| 久久五月婷婷丁香社区| 成年人网站免费视频| 国产精品毛片视频| 久久久综合av| 国产91麻豆视频| 亚洲高清不卡在线观看| 日批免费观看视频| 亚洲成人原创| 精品毛片久久久久久| 理论不卡电影大全神| 亚洲精品www| 久久夜色精品亚洲| 91丝袜高跟美女视频| 免费欧美一级视频| 久久不见久久见免费视频7| 国产91久久婷婷一区二区| 久久久久久青草| 欧美性大战久久久久久久 | 亚洲国产乱码最新视频| 美女露出粉嫩尿囗让男人桶| 亚洲二区精品| 欧美激情论坛| 国产亚洲欧美日韩精品一区二区三区| 深夜福利国产精品| 999国产精品视频免费| 亚洲激情图片一区| 国产激情视频网站| 日韩精品每日更新| 国产成年人在线观看| 亚洲精品黑牛一区二区三区| 国语自产在线不卡| 麻豆app在线观看| 在线观看91精品国产麻豆| 久久久久亚洲av片无码下载蜜桃 | 国产一区自拍视频| 欧美人与性动交xxⅹxx| 日韩在线观看免费全| 丰满熟妇乱又伦| 色综合久久久久综合体| 黑人狂躁日本娇小| 成人深夜在线观看| 欧美性猛交xxx乱久交| 图片小说视频色综合| 国产精品一国产精品最新章节| 亚洲电影观看| 久久久国产视频| 偷拍自拍在线视频| 555夜色666亚洲国产免| 国产欧美日韩另类| 亚洲婷婷国产精品电影人久久| 99精品一区二区三区无码吞精| 水蜜桃久久夜色精品一区的特点| 自拍偷拍99| 四虎影视精品| 99久久精品久久久久久ai换脸| 亚洲电影观看| 欧美日韩国产二区| 亚洲免费视频一区二区三区| 精品国产成人系列| 中文字幕日本人妻久久久免费 | 国产女主播自拍| 欧美一区二区三| 国产乱码精品一区二区三区日韩精品| 99只有精品| 欧美一区二三区| 午夜小视频在线观看| 亚洲少妇激情视频| 国产91绿帽单男绿奴| 6080午夜不卡| 日韩一级在线视频| 亚洲国产综合91精品麻豆| 日本精品久久久久中文| 99久久伊人网影院| 亚洲熟女乱综合一区二区| 日本伊人色综合网| 久久国产乱子伦免费精品| 国产综合欧美| 日本一区二区三区四区五区六区| 国产乱码精品一区二区亚洲| 国产精品久久亚洲| 欧美久久亚洲| 成人亲热视频网站| 欧美激情三区| 国产精品久久久久久av福利| 制服丝袜专区在线| 97久久久免费福利网址| 女囚岛在线观看| 久久国产精品免费视频| 蜜桃视频在线观看免费视频网站www| 亚洲人精选亚洲人成在线| 香蕉av一区二区三区| 欧美精品一区二| 欧美一级特黄aaaaaa大片在线观看| 日韩一区二区三区视频在线观看| 91久久久久国产一区二区| 欧美天堂一区二区三区| 黄色大全在线观看| 欧美在线小视频| 国产精品成人无码| 欧美午夜一区二区| 亚洲中文字幕一区二区| 欧美日韩免费不卡视频一区二区三区 | 91亚洲精华国产精华| 日本成人一区二区| 国产欧美日韩专区发布| 欧美视频在线视频精品| 国产精品一香蕉国产线看观看| 成人午夜一级| 国产欧美最新羞羞视频在线观看| 久久国内精品| 91免费综合在线| 天堂av一区| 国产精品一区视频| 欧美午夜18电影| 欧美视频小说| 欧美少妇xxxx| 亚洲欧洲精品一区二区| 五月激情综合| 国产成人一二三区| 在线日本成人| 成人亚洲视频在线观看| 蜜臀av性久久久久蜜臀aⅴ| 色噜噜狠狠一区二区| 国产麻豆精品久久一二三| 亚洲一级Av无码毛片久久精品| 97se亚洲国产综合自在线观| 天天躁日日躁aaaxxⅹ| 国产精品美女一区二区在线观看| 国产免费久久久久| 午夜影院久久久| 日韩三级一区二区| 91精品啪在线观看国产60岁| 亚洲精品久久久蜜桃动漫| 精品亚洲一区二区三区四区五区| 国产69精品久久app免费版| 精品国产一区久久久| 国产天堂在线播放视频| 欧洲一区二区视频| 中文字幕综合| 精品一区二区国产| 四虎成人精品永久免费av九九| 成人在线免费观看视频网站| 美女黄色成人网| 色姑娘综合天天| 国产欧美日韩三级| 欧美黄色免费观看| 色天天综合久久久久综合片| 国产精品主播一区二区| 亚洲精品国精品久久99热一| 黄网站app在线观看| 51精品国产黑色丝袜高跟鞋 | 69久久夜色精品国产69蝌蚪网| 日本精品999| 日韩综合视频在线观看| 日韩电影免费看| 91亚洲精华国产精华| 久操精品在线| 免费看黄在线看| 麻豆精品在线播放| 极品粉嫩小仙女高潮喷水久久| 综合久久国产九一剧情麻豆| 麻豆精品久久久久久久99蜜桃| 3d动漫精品啪啪| 国产在线超碰| 韩国视频理论视频久久| 成年永久一区二区三区免费视频| 久久久久九九九| 欧美/亚洲一区| 婷婷激情四射五月天| a美女胸又www黄视频久久| 紧身裙女教师波多野结衣| 欧美亚洲综合网| 深夜福利免费在线观看| 欧美激情videos| 国产精品777777在线播放| 视频一区国产精品| 免费久久99精品国产自在现线| 奇米777在线| 亚洲欧洲国产日韩| 伊人网综合在线| 亚洲人成欧美中文字幕| 蜜臀久久精品| 国产欧美一区二区在线播放| 亚洲成av人电影| av污在线观看| 亚洲国产精品黑人久久久| 亚洲欧美一区二区三区在线观看| 亚洲成在人线av| 欧美人与性动交α欧美精品济南到| 成人激情在线观看| 91一区在线| 亚洲精品www.| 中文字幕制服丝袜一区二区三区 | 日韩欧美久久一区| 成人福利网站| 91沈先生作品| 亚洲精品久久久| 精品人妻一区二区三| 亚洲精品国产成人久久av盗摄 | 日韩精品电影网| 美女的胸无遮挡在线观看| 国产精品三区在线| 亚洲国产影院| avtt香蕉久久| 色素色在线综合| 韩国免费在线视频| 国产成人在线亚洲欧美| 欧美肉体xxxx裸体137大胆| 亚洲 中文字幕 日韩 无码| 中文幕一区二区三区久久蜜桃| 国产99久久久久久免费看| 一区二区亚洲精品国产| 欧美xxxx网站| 欧美大片免费播放| 成人福利电影精品一区二区在线观看| 国产精品7777| 日韩av综合网站| 欧美日韩免费观看视频| 亚洲精品一区二区三| 精品一区二区在线看| 深夜福利影院在线观看| 欧美tickling网站挠脚心| 97人人爽人人澡人人精品| 久久婷婷开心| 男男成人高潮片免费网站| 动漫性做爰视频| 亚洲成人久久久久| 欧美三级网址| 综合久久国产| 成人黄色在线视频| 波多野结衣视频网址| 久久精品中文字幕一区| 国产精品xxx在线观看| 国产福利一区视频| 中文字幕中文在线不卡住| 动漫av一区二区三区| 国产97在线亚洲| 中文字幕亚洲精品乱码| 一出一进一爽一粗一大视频| 精品视频一区二区三区免费| 欧美精品videossex少妇| 欧美婷婷久久| 国产乱码精品一区二区三区忘忧草 | 人妻 丝袜美腿 中文字幕| 欧美性猛交xxxx乱大交极品| 日本中文字幕电影在线免费观看| 成人9ⅰ免费影视网站| 另类亚洲自拍| 91成人福利视频| 亚洲视屏在线播放| 一区视频网站| 手机视频在线观看| 亚洲一本大道在线| 国产精品视频一区二区久久| 99国精产品一二二线| 奇米影视7777精品一区二区| 国产亚洲精品久久777777| 中文字幕亚洲欧美日韩在线不卡|