Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 韩国一级片视频,免费精品久久,国产成人久久

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          SpringBoot如何防止XSS腳本攻擊?

          么是XSS腳本攻擊?

          XSS(Cross-Site Scripting,跨站腳本攻擊)是一種常見(jiàn)的 Web 攻擊技術(shù),攻擊者通過(guò)在 Web 頁(yè)面中插入惡意的腳本代碼,使得用戶在瀏覽頁(yè)面時(shí)執(zhí)行這些腳本,從而達(dá)到攻擊的目的。通常被分為如下的三種類型。

          存儲(chǔ)型 XSS(Stored XSS)

          攻擊者將惡意腳本代碼存儲(chǔ)在服務(wù)器上的數(shù)據(jù)庫(kù)或文件中,當(dāng)用戶訪問(wèn)包含這些惡意代碼的頁(yè)面時(shí),會(huì)執(zhí)行這些代碼。

          反射型 XSS(Reflected XSS)

          攻擊者將惡意腳本代碼作為參數(shù)注入到URL中,當(dāng)用戶點(diǎn)擊包含這些惡意參數(shù)的URL時(shí),服務(wù)器端將參數(shù)反射回頁(yè)面并執(zhí)行,從而觸發(fā)XSS攻擊。

          DOM 型 XSS(DOM-based XSS)

          攻擊者利用客戶端腳本對(duì)DOM(Document Object Model,文檔對(duì)象模型)進(jìn)行操作的漏洞,通過(guò)修改頁(yè)面的DOM結(jié)構(gòu)來(lái)執(zhí)行惡意代碼。

          常見(jiàn)的XSS攻擊防御手段

          • 過(guò)濾和清理用戶輸入數(shù)據(jù),移除或轉(zhuǎn)義HTML標(biāo)簽和特殊字符
          • 使用 Content Security Policy(CSP)來(lái)限制頁(yè)面資源加載和執(zhí)行的范圍。
          • 使用安全的編碼函數(shù)來(lái)處理用戶輸入和輸出,如HTML編碼、URL編碼等
          • 對(duì)于敏感操作和數(shù)據(jù),使用HttpOnly標(biāo)記和Secure標(biāo)記來(lái)設(shè)置Cookie的屬性,防止被竊取和劫持。
          • 對(duì)于存儲(chǔ)型XSS,嚴(yán)格控制用戶輸入的內(nèi)容,并對(duì)輸入數(shù)據(jù)進(jìn)行驗(yàn)證和過(guò)濾。
          • 對(duì)于反射型XSS,驗(yàn)證和過(guò)濾所有用戶提交的數(shù)據(jù),包括URL參數(shù)、表單數(shù)據(jù)等。
          • 對(duì)于DOM型XSS,避免直接使用用戶輸入的數(shù)據(jù)操作DOM,盡量使用安全的DOM操作方式。

          如何實(shí)現(xiàn)?

          SpringBoot可以通過(guò)使用過(guò)濾器或攔截器來(lái)對(duì)請(qǐng)求參數(shù)進(jìn)行過(guò)濾和清理,防止惡意的XSS腳本注入。下面是一種通過(guò)過(guò)濾器實(shí)現(xiàn)防止XSS攻擊的方法。

          創(chuàng)建一個(gè)自定義的過(guò)濾器,用于過(guò)濾請(qǐng)求中的參數(shù),并清理其中的HTML標(biāo)簽和特殊字符。

          @WebFilter("/*")
          public class XSSFilter implements Filter {
              @Override
              public void init(FilterConfig filterConfig) throws ServletException {
                  // 初始化操作,可以留空
              }
              @Override
              public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
                  chain.doFilter(new XSSRequestWrapper((HttpServletRequest) request), response);
              }
              @Override
              public void destroy() {
                  // 銷毀操作,可以留空
              }
              static class XSSRequestWrapper extends HttpServletRequestWrapper {
                  XSSRequestWrapper(HttpServletRequest request) {
                      super(request);
                  }
                  @Override
                  public String getParameter(String name) {
                      String value = super.getParameter(name);
                      if (value != null) {
                          value = cleanXSS(value);
                      }
                      return value;
                  }
                  private String cleanXSS(String value) {
                      // 進(jìn)行 XSS 過(guò)濾,清理 HTML 標(biāo)簽和特殊字符
                      // 例如,可以使用正則表達(dá)式或者第三方庫(kù)進(jìn)行過(guò)濾
                      // 這里只是簡(jiǎn)單示例,具體過(guò)濾規(guī)則需根據(jù)實(shí)際情況自行設(shè)計(jì)
                      return value.replaceAll("<", "<")
                                  .replaceAll(">", ">")
                                  .replaceAll("\"", """)
                                  .replaceAll("'", "'")
                                  .replaceAll("&", "&");
                  }
              }
          }

          在SpringBoot應(yīng)用的配置類中注冊(cè)該過(guò)濾器。

          @Bean
          public FilterRegistrationBean<XSSFilter> xssFilterRegistration() {
              FilterRegistrationBean<XSSFilter> registration = new FilterRegistrationBean<>();
              registration.setFilter(new XSSFilter());
              registration.addUrlPatterns("/*");
              registration.setName("xssFilter");
              registration.setOrder(1);
              return registration;
          }

          上述代碼,我們創(chuàng)建了一個(gè)名為XSSFilter的過(guò)濾器,在doFilter方法中,對(duì)請(qǐng)求進(jìn)行過(guò)濾,并在需要時(shí)使用XSSRequestWrapper對(duì)請(qǐng)求參數(shù)進(jìn)行清理。清理過(guò)程中,我們簡(jiǎn)單地將 HTML 標(biāo)簽和一些特殊字符替換為相應(yīng)的轉(zhuǎn)義序列,以防止惡意腳本注入。

          請(qǐng)注意,這只是一種簡(jiǎn)單的示例,實(shí)際場(chǎng)景中應(yīng)根據(jù)具體情況制定更為嚴(yán)格的過(guò)濾規(guī)則。

          互聯(lián)網(wǎng)誕生起,安全威脅就--直伴隨著網(wǎng)站的發(fā)展,各種Web攻擊和信息泄露也從未停止。2011年中國(guó)互聯(lián)網(wǎng)領(lǐng)域爆出兩樁比較大的安全事故,一樁是新浪微博遭XSS攻擊,另一樁是以CSDN為代表的多個(gè)網(wǎng)站泄露用戶密碼和個(gè)人信息。特別是后者,因?yàn)橛绊懭巳簭V泛,部分受影響網(wǎng)站涉及用戶實(shí)體資產(chǎn)和交易安全,一時(shí)成為輿論焦點(diǎn)。



          這里列舉常用的幾中攻擊方式:

          一、XSS攻擊

          xss攻擊即跨站點(diǎn)腳本攻擊( Cross Site Script), 指黑客通過(guò)篡改網(wǎng)頁(yè),注入惡意HTML腳本,保存在網(wǎng)站的服務(wù)器,在用戶瀏覽網(wǎng)頁(yè)時(shí),控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。

          XSS攻擊相對(duì)而言是一種“古老”的攻擊手段,卻又歷久彌新,不斷變化出新的攻擊花樣,許多以前認(rèn)為不可能用來(lái)攻擊的漏洞也逐漸被攻擊者利用。因此XSS防攻擊也是非常復(fù)雜的。主要手段有如下兩種。

          1、過(guò)濾消毒

          xss攻擊者一般都是通過(guò)在請(qǐng)求中嵌入惡意腳本達(dá)到攻擊的目的,這些腳本是一般用戶輸入中不使用的,如果進(jìn)行過(guò)濾和消毒處理,即對(duì)某些html 危險(xiǎn)字符轉(zhuǎn)義,如“>”轉(zhuǎn)義為“>"、“<”轉(zhuǎn)義為“<” 等,就可以防止大部分攻擊。為了避免對(duì)不必要的內(nèi)容錯(cuò)誤轉(zhuǎn)義,如“3<5”中的“<”需要進(jìn)行文本匹配后再轉(zhuǎn)義,如“<img src=”這樣的上下文中的“<" 才轉(zhuǎn)義。事實(shí)上,消毒幾乎是所有網(wǎng)站最必備的XSS防攻擊手段。

          2、HttpOnly

          最早由微軟提出,即瀏覽器禁止頁(yè)面JavaScript訪問(wèn)帶有HttpOnly屬性的Cookie。

          HttpOnly并不是直接對(duì)抗XSS攻擊的,而是防止XSS攻擊者竊取Cookie。對(duì)于存放敏感

          信息的Cookie,如用戶認(rèn)證信息等,可通過(guò)對(duì)該Cookie添加HttpOnly屬性,避免被攻擊

          腳本竊取。


          二、注入攻擊

          注入攻擊主要有兩種形式,SQL 注入攻擊和OS注入攻擊。SQL注入攻擊的原理如下。攻擊者在HTTP請(qǐng)求中注入惡意SQL命令( drop table users;),服務(wù)器用請(qǐng)求參數(shù)構(gòu)造數(shù)據(jù)庫(kù)SQL命令時(shí),惡意SQL被一起構(gòu)造,并在數(shù)據(jù)庫(kù)中執(zhí)行。


          SQL注入攻擊需要攻擊者對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)有所了解才能進(jìn)行,攻擊者獲取數(shù)據(jù)庫(kù)表結(jié)構(gòu)信息的手段有如下幾種:比如網(wǎng)站使用了開(kāi)源的組件、錯(cuò)誤提示返回?cái)?shù)據(jù)結(jié)構(gòu)信息等。常用防御方式有兩種:

          1、過(guò)濾

          和防XSS攻擊一樣,請(qǐng)求參數(shù)消毒是一種比較簡(jiǎn)單粗暴又有效的手段。通過(guò)正則匹配,過(guò)濾請(qǐng)求數(shù)據(jù)中可能注入的SQL,如“ drop table" 、“ \b(?:updatelb.*?\bset|delete\b\W*?\bfrom)b"等。

          2、參數(shù)綁定

          使用預(yù)編譯手段,綁定參數(shù)是最好的防SQL注入方法。目前許多數(shù)據(jù)訪問(wèn)層框架,如IBatis, Hibernate等,都實(shí)現(xiàn)SQL預(yù)編譯和參數(shù)綁定,攻擊者的惡意SQL會(huì)被當(dāng)做SQL的參數(shù),而不是SQL命令被執(zhí)行。

          除了SQL注入,攻擊者還根據(jù)具體應(yīng)用,注入OS命令、編程語(yǔ)言代碼等,利用程序漏洞,達(dá)到攻擊目的。


          三、CSRF攻擊

          CSRF ( Cross Site Request Forgery,跨站點(diǎn)請(qǐng)求偽造),攻擊者通過(guò)跨站請(qǐng)求,以合法用戶的身份進(jìn)行非法操作,如轉(zhuǎn)賬交易、發(fā)表評(píng)論等。CSRF的主要手法是利用跨站請(qǐng)求,在用戶不知情的情況下,以用戶的身份偽造請(qǐng)求。其核心是利用了瀏覽器Cookie或服務(wù)器Session策略,盜取用戶身份。


          相應(yīng)地,CSRF的防御手段主要是識(shí)別請(qǐng)求者身份。主要有下面幾種方法。

          1、表單token

          CSRF是一個(gè)偽造用戶請(qǐng)求的操作,所以需要構(gòu)造用戶請(qǐng)求的所有參數(shù)才可以。表單Token通過(guò)在請(qǐng)求參數(shù)中增加隨機(jī)數(shù)的辦法來(lái)阻止攻擊者獲得所有請(qǐng)求參數(shù):在頁(yè)面表單中增加一個(gè)隨機(jī)數(shù)作為T(mén)oken,每次響應(yīng)頁(yè)面的Token都不相同,從正常頁(yè)面提交的請(qǐng)求會(huì)包含該Token值,而偽造的請(qǐng)求無(wú)法獲得該值,服務(wù)器檢查請(qǐng)求參數(shù)中Token的值是否存在并且正確以確定請(qǐng)求提交者是否合法。

          2、驗(yàn)證碼

          相對(duì)說(shuō)來(lái),驗(yàn)證碼則更加簡(jiǎn)單有效,即請(qǐng)求提交時(shí),需要用戶輸入驗(yàn)證碼,以避免在用戶不知情的情況下被攻擊者偽造請(qǐng)求。但是輸入驗(yàn)證碼是一個(gè)糟糕的用戶體驗(yàn),所以請(qǐng)?jiān)诒匾獣r(shí)使用,如支付交易等關(guān)鍵頁(yè)面。

          3、Referer check

          HTTP請(qǐng)求頭的Referer域中記錄著請(qǐng)求來(lái)源,可通過(guò)檢查請(qǐng)求來(lái)源,驗(yàn)證其是否合法。很多網(wǎng)站使用這個(gè)功能實(shí)現(xiàn)圖片防盜鏈(如果圖片訪問(wèn)的頁(yè)面來(lái)源不是來(lái)自自己網(wǎng)站的網(wǎng)頁(yè)就拒絕)。


          三、其他攻擊和漏洞

          以上只是列舉常見(jiàn)的三種,還有一些其他的也常被黑客利用,比如錯(cuò)誤堆棧信息直接返回敏感信息,HTML注釋有敏感信息,文件上傳只沒(méi)有限制文件類型(黑客上傳惡意腳本),路徑遍厲等

          天,從開(kāi)發(fā)人員的角度,說(shuō)說(shuō)《如何防范常見(jiàn)的Web攻擊》話題。

          SQL注入攻擊

          SQL注入攻擊,這個(gè)是最常聊到的話題,使用過(guò)Java的開(kāi)發(fā)人員,第一個(gè)反應(yīng)就是一定要使用預(yù)編譯的PrepareStatement,是吧?

          什么是SQL注入攻擊

          攻擊者在HTTP請(qǐng)求中注入惡意的SQL代碼,服務(wù)器使用參數(shù)構(gòu)建數(shù)據(jù)庫(kù)SQL命令時(shí),惡意SQL被一起構(gòu)造,并在數(shù)據(jù)庫(kù)中執(zhí)行。

          用戶登錄,輸入用戶名 lianggzone,密碼 ‘ or ‘1’=’1 ,如果此時(shí)使用參數(shù)構(gòu)造的方式,就會(huì)出現(xiàn)

          select * from user 
           where name = 'lianggzone' 
           and password = '' or '1'='1'
          

          不管用戶名和密碼是什么內(nèi)容,使查詢出來(lái)的用戶列表不為空。

          現(xiàn)在還會(huì)存在SQL注入攻擊么

          這個(gè)問(wèn)題在使用了預(yù)編譯的PrepareStatement后,安全性得到了很大的提高,但是真實(shí)情況下,很多同學(xué)并不重視,還是會(huì)留下漏洞的。舉個(gè)例子,看看,大家的代碼中對(duì) sql 中 in 操作,使用了預(yù)編譯,還是仍然還是通過(guò)字符串拼接呢?

          如何防范SQL注入攻擊

          使用預(yù)編譯的PrepareStatement是必須的,但是一般我們會(huì)從兩個(gè)方面同時(shí)入手。

          Web端

          • 有效性檢驗(yàn)。
          • 限制字符串輸入的長(zhǎng)度。

          服務(wù)端

          • 不用拼接 SQL 字符串。
          • 使用預(yù)編譯的 PrepareStatement。
          • 有效性檢驗(yàn)。(為什么服務(wù)端還要做有效性檢驗(yàn)?第一準(zhǔn)則,外部都是不可信的,防止攻擊者繞過(guò)Web端請(qǐng)求)
          • 過(guò)濾 SQL 需要的參數(shù)中的特殊字符。比如單引號(hào)、雙引號(hào)。

          XSS攻擊

          什么是XSS攻擊

          跨站點(diǎn)腳本攻擊,指攻擊者通過(guò)篡改網(wǎng)頁(yè),嵌入惡意腳本程序,在用戶瀏覽網(wǎng)頁(yè)時(shí),控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。

          假設(shè)頁(yè)面上有一個(gè)表單

          <input type="text" name="name" value="梁桂釗"/>
          

          如果,用戶輸入的不是一個(gè)正常的字符串,而是

          "/><script>alert("haha")</script><!-
          

          此時(shí),頁(yè)面變成下面的內(nèi)容,在輸入框input的后面帶上了一段腳本代碼。

          <input type="text" name="name" value="梁桂釗"/><script>alert("haha")</script><!-"/>
          

          這端腳本程序只是彈出一個(gè)消息框,并不會(huì)造成什么危害,攻擊的威力取決于用戶輸入了什么樣的腳本,只要稍微修改,便可使攻擊極具攻擊性。

          XSS攻擊有多可怕

          蠻早之前,我曾經(jīng)找了幾個(gè)網(wǎng)站做個(gè)測(cè)試,其實(shí)大家對(duì)XSS攻擊的防范還是不夠,都成功的注入了測(cè)試腳本。

          甚至,還有攻擊者提交惡意的javascript代碼的評(píng)論信息或者反饋信息(這些信息,正常客戶端沒(méi)有做xss校驗(yàn),會(huì)存在客戶端注入問(wèn)題),所有訪問(wèn)者訪問(wèn)該內(nèi)容時(shí),都會(huì)執(zhí)行這段惡意的javascript代碼。

          如何防范XSS攻擊

          • 前端,服務(wù)端,同時(shí)需要字符串輸入的長(zhǎng)度限制。
          • 前端,服務(wù)端,同時(shí)需要對(duì)HTML轉(zhuǎn)義處理。將其中的”<”,”>”等特殊字符進(jìn)行轉(zhuǎn)義編碼。

          CSRF攻擊

          什么是CSRF攻擊

          跨站點(diǎn)請(qǐng)求偽造,指攻擊者通過(guò)跨站請(qǐng)求,以合法的用戶的身份進(jìn)行非法操作。可以這么理解CSRF攻擊:攻擊者盜用你的身份,以你的名義向第三方網(wǎng)站發(fā)送惡意請(qǐng)求。CRSF能做的事情包括利用你的身份發(fā)郵件,發(fā)短信,進(jìn)行交易轉(zhuǎn)賬,甚至盜取賬號(hào)信息。

          如何防范CSRF攻擊

          • 安全框架,例如Spring Security。
          • token機(jī)制。在HTTP請(qǐng)求中進(jìn)行token驗(yàn)證,如果請(qǐng)求中沒(méi)有token或者token內(nèi)容不正確,則認(rèn)為CSRF攻擊而拒絕該請(qǐng)求。
          • 驗(yàn)證碼。通常情況下,驗(yàn)證碼能夠很好的遏制CSRF攻擊,但是很多情況下,出于用戶體驗(yàn)考慮,驗(yàn)證碼只能作為一種輔助手段,而不是最主要的解決方案。
          • referer識(shí)別。在HTTP Header中有一個(gè)字段Referer,它記錄了HTTP請(qǐng)求的來(lái)源地址。如果Referer是其他網(wǎng)站,就有可能是CSRF攻擊,則拒絕該請(qǐng)求。但是,服務(wù)器并非都能取到Referer。很多用戶出于隱私保護(hù)的考慮,限制了Referer的發(fā)送。在某些情況下,瀏覽器也不會(huì)發(fā)送Referer,例如HTTPS跳轉(zhuǎn)到HTTP。

          文件上傳漏洞

          什么是文件上傳漏洞

          文件上傳漏洞,指的是用戶上傳一個(gè)可執(zhí)行的腳本文件,并通過(guò)此腳本文件獲得了執(zhí)行服務(wù)端命令的能力。

          許多第三方框架、服務(wù),都曾經(jīng)被爆出文件上傳漏洞,比如很早之前的Struts2,以及富文本編輯器等等,可能被一旦被攻擊者上傳惡意代碼,有可能服務(wù)端就被人黑了。

          如何防范文件上傳漏洞

          • 文件上傳的目錄設(shè)置為不可執(zhí)行。
          • 判斷文件類型。在判斷文件類型的時(shí)候,可以結(jié)合使用MIME Type,后綴檢查等方式。因?yàn)閷?duì)于上傳文件,不能簡(jiǎn)單地通過(guò)后綴名稱來(lái)判斷文件的類型,因?yàn)楣粽呖梢詫⒖蓤?zhí)行文件的后綴名稱改為圖片或其他后綴類型,誘導(dǎo)用戶執(zhí)行。
          • 對(duì)上傳的文件類型進(jìn)行白名單校驗(yàn),只允許上傳可靠類型。
          • 上傳的文件需要進(jìn)行重新命名,使攻擊者無(wú)法猜想上傳文件的訪問(wèn)路徑,將極大地增加攻擊成本,同時(shí)向shell.php.rar.ara這種文件,因?yàn)橹孛鵁o(wú)法成功實(shí)施攻擊。
          • 限制上傳文件的大小。
          • 單獨(dú)設(shè)置文件服務(wù)器的域名。

          訪問(wèn)控制

          一般來(lái)說(shuō),“基于URL的訪問(wèn)控制”是最常見(jiàn)的。

          垂直權(quán)限管理

          訪問(wèn)控制實(shí)際上是建立用戶與權(quán)限之間的對(duì)應(yīng)關(guān)系,即“基于角色的訪問(wèn)控制”,RBAC。不同角色的權(quán)限有高低之分。高權(quán)限角色訪問(wèn)低權(quán)限角色的資源往往是被允許的,而低權(quán)限角色訪問(wèn)高權(quán)限的資源往往被禁止的。在配置權(quán)限時(shí),應(yīng)當(dāng)使用“最小權(quán)限原則”,并使用“默認(rèn)拒絕”的策略,只對(duì)有需要的主體單獨(dú)配置”允許”的策略,這在很多時(shí)候能夠避免發(fā)生“越權(quán)訪問(wèn)”。

          例如,Spring Security, Apache Shiro都可以建立垂直權(quán)限管理。

          水平權(quán)限管理

          水平權(quán)限問(wèn)題在同一個(gè)角色上,系統(tǒng)只驗(yàn)證了訪問(wèn)數(shù)據(jù)的角色,沒(méi)有對(duì)角色內(nèi)的用戶做細(xì)分,由于水平權(quán)限管理是系統(tǒng)缺乏一個(gè)數(shù)據(jù)級(jí)的訪問(wèn)控制所造成的,因此水平權(quán)限管理又可以稱之為“基于數(shù)據(jù)的訪問(wèn)控制”。

          舉個(gè)理解,比如我們之前的一個(gè)助手產(chǎn)品,客戶端用戶刪除評(píng)論功能,如果沒(méi)有做水平權(quán)限管理,即設(shè)置只有本人才可以刪除自己的評(píng)論,那么用戶通過(guò)修改評(píng)論id就可以刪除別人的評(píng)論這個(gè)就存在危險(xiǎn)的越權(quán)操作。

          這個(gè)層面,基本需要我們業(yè)務(wù)層面去處理,但是這個(gè)也是最為經(jīng)常遺落的安全點(diǎn)。

          總結(jié)

          上面列舉的幾個(gè)話題,都是我在開(kāi)發(fā)過(guò)程中,遇到的比較常見(jiàn)的Web安全話題,以及一些防范方案,需要我們?cè)陂_(kāi)發(fā)過(guò)程中及時(shí)規(guī)避,而不是依靠安全人員或者真正用戶,甚至惡意的攻擊者幫我們?nèi)グl(fā)現(xiàn)問(wèn)題。當(dāng)然,還有很多Web安全話題,例如遠(yuǎn)程執(zhí)行漏洞、拒絕服務(wù)攻擊、Session保持攻擊等等

          喜歡的小伙伴,點(diǎn)個(gè)關(guān)注吧!


          主站蜘蛛池模板: 色一情一乱一伦一区二区三欧美| 国产一区二区三区露脸| 国产成人精品a视频一区| 亚洲一区精品视频在线| 久久影院亚洲一区| 一区二区在线视频免费观看| 亚洲Av无码国产一区二区 | 国产成人精品一区二区A片带套 | 色欲AV蜜桃一区二区三| 亚洲码一区二区三区| 亚洲AV无码一区东京热| 国产一区二区三区高清视频| 成人精品视频一区二区三区| 国产美女口爆吞精一区二区| 无码人妻精品一区二区三区99不卡| 无码日本电影一区二区网站| 日本高清一区二区三区| 日韩一区二区三区四区不卡| 国产在线精品一区二区中文| 精品国产日产一区二区三区| 国产av熟女一区二区三区| 亚洲日韩精品一区二区三区| 亚洲色无码一区二区三区| 国产凹凸在线一区二区| 亚洲av无码不卡一区二区三区| 久久久无码精品国产一区| 日韩在线不卡免费视频一区| 中文字幕在线看视频一区二区三区 | 久久精品日韩一区国产二区 | 中文字幕日韩一区二区不卡| 无码人妻一区二区三区一| 2018高清国产一区二区三区 | 无遮挡免费一区二区三区| 一区二区三区免费在线视频| 中文字幕一区二区免费| 无码人妻一区二区三区在线视频 | 香蕉免费一区二区三区| 老熟妇仑乱视频一区二区| 中日韩精品无码一区二区三区| 无码aⅴ精品一区二区三区| 日本一区二区三区精品国产|