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

SpringBoot與Sentinel整合,解決異常爬蟲請求問題

安全 應用安全
DDoS(Distributed Denial of Service)是一種惡意攻擊手段,攻擊者通過控制大量計算機設備(如僵尸網絡),向目標服務器發送大量的數據包或請求,從而耗盡服務器的帶寬、CPU資源或其他系統資源,導致合法用戶無法正常訪問服務。

Sentinel 是阿里巴巴開源的一款面向分布式服務架構的輕量級高可用流量控制組件,主要用于流量控制、熔斷降級和系統負載保護。 雖然 Sentinel 主要用于微服務場景下的流量管理和故障隔離,但也可以通過一些策略和配置來輔助防御 DDoS 攻擊和異常爬蟲請求。

DDoS攻擊

DDoS(Distributed Denial of Service)是一種惡意攻擊手段,攻擊者通過控制大量計算機設備(如僵尸網絡),向目標服務器發送大量的數據包或請求,從而耗盡服務器的帶寬、CPU資源或其他系統資源,導致合法用戶無法正常訪問服務。

常見類型:

  1. Volume-based Attacks (體積型攻擊):
  • 例如ICMP Flood、UDP Flood。
  • 攻擊者發送大量無用的數據包,占用帶寬。
  1. Protocol Attacks (協議型攻擊):
  • 例如SYN Flood、ACK Flood。
  • 攻擊者利用TCP/IP協議漏洞,發送特定的數據包使服務器崩潰。
  1. Application Layer Attacks (應用層攻擊):
  • 例如HTTP Flood、Slowloris。
  • 攻擊者模擬真實用戶的行為,發送大量的HTTP請求,消耗服務器的應用層資源。

防御措施:

  • 使用CDN: 內容分發網絡可以幫助分散流量,減輕單個服務器的壓力。
  • 負載均衡: 分散請求到多個服務器上,提高系統的可用性。
  • 防火墻和入侵檢測系統: 防止非法流量進入服務器。
  • Rate Limiting (限流): 控制每個IP地址或來源的請求速率,防止過載。
  • Traffic Shaping (流量整形): 調整進出網絡的數據包傳輸速率,優化流量分配。
  • Anycast IP Addressing: 使用多條路徑將流量引導至最近的健康節點,提高冗余性和抗攻擊能力。

異常爬蟲請求

異常爬蟲是指那些不符合正常爬蟲行為規范的自動化程序,它們可能會對網站造成負擔,甚至破壞網站的正常運行。這些爬蟲可能用于抓取敏感信息、進行競爭情報收集、參與SEO欺詐等活動。

特點:

  • 高頻率請求: 在短時間內發送大量請求,可能導致服務器過載。
  • 不遵循robots.txt: 忽略網站的爬蟲協議文件,訪問受保護的內容。
  • 偽裝成普通用戶: 使用偽造的User-Agent字符串,難以識別。
  • 頻繁更改IP: 使用代理或VPN頻繁更換IP地址,增加追蹤難度。

防御措施:

  • 設置Robots.txt: 明確告知爬蟲哪些內容可以抓取,哪些不可以。
  • Rate Limiting (限流): 限制每個IP地址或來源的請求速率,防止濫用。
  • CAPTCHA (驗證碼): 在關鍵操作前要求用戶提供驗證碼,區分人機。
  • IP黑名單/白名單: 阻止已知惡意IP地址的訪問,允許信任的IP地址。
  • User-Agent過濾: 檢查請求的User-Agent字段,阻止非標準的爬蟲請求。
  • Session Management: 使用會話管理技術,識別和限制可疑的爬蟲行為。
  • Dynamic Content Delivery: 動態生成內容,使得爬蟲難以抓取有用的信息。
  • Monitoring and Logging: 實時監控和記錄異常請求,及時發現和響應潛在威脅。

實現思路

  1. 流控(Flow Control):
  • 流控用于限制某個資源的訪問速率,防止系統過載。
  • 通過設置每秒允許的最大請求數,當超過這個閾值時,Sentinel會阻止多余的請求,并返回相應的錯誤信息。
  1. 降級(Degrade):
  • 降級用于在系統壓力過大時自動降低服務的可用性,保護核心業務不受影響。
  • 可以根據不同的策略(如RT、異常比例、異常數)來進行降級處理。
  1. 熱點參數限流(Hotspot Parameter Flow Control):
  • 熱點參數限流用于針對特定參數進行限流,防止某些參數導致的服務過載。
  1. 全局異常處理器:
  • 捕獲并處理由Sentinel拋出的異常,返回友好的錯誤信息給客戶端。
  1. 自定義異常處理器:
  • 根據不同的異常類型(如FlowExceptionDegradeException),返回具體的錯誤信息。

先啟動Nacos服務器

我已經在本地啟動了Nacos服務器。

你也可以從Nacos GitHub https://github.com/alibaba/nacos 下載并按照說明啟動。

上傳Sentinel規則到Nacos

在Nacos配置管理中創建兩個配置文件:

  • Data IDsentinel-demo-flow-rulesGroupDEFAULT_GROUP
[
    {
        "resource": "/api/hello",
        "limitApp": "default",
        "grade": 1,
        "count": 10,
        "strategy": 0,
        "controlBehavior": 0,
        "clusterMode": false
    }
]
  • Data IDsentinel-demo-degrade-rulesGroupDEFAULT_GROUP
[]

代碼實操

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/><!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>sentinel-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>sentinel-demo</name>
    <description>Demo project for Spring Boot with Sentinel</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <!-- Spring Boot Web Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Alibaba Sentinel Starter -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- Lombok for reducing boilerplate code -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- Spring Boot Test Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR8</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <!-- Spring Boot Maven Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

application.yml

server:
  port:8080

spring:
cloud:
    sentinel:
      transport:
        dashboard:localhost:8080# 配置Sentinel控制臺地址
      datasource:
        ds1:
          nacos:
            server-addr:localhost:8848# Nacos服務器地址
            data-id:${spring.application.name}-flow-rules# 流控規則數據ID
            group:DEFAULT_GROUP# 流控規則組名
            rule-type:flow# 規則類型為流控規則

logging:
level:
    root:INFO# 設置根日志級別為INFO
    com.example.sentineldemo:DEBUG# 設置應用包的日志級別為DEBUG

logback-spring.xml

<!-- Logback日志配置文件 -->
<configuration>
    <!-- 定義控制臺輸出器 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern><!-- 日志格式 -->
        </encoder>
    </appender>

    <!-- 根日志記錄器配置 -->
    <root level="info">
        <appender-ref ref="STDOUT"/><!-- 將日志輸出到控制臺 -->
    </root>
</configuration>

flow-rules.json

放在 src/main/resources/sentinel/

[
    {
        "resource": "/api/hello", // 資源路徑
        "limitApp": "default", // 默認限流應用
        "grade": 1, // QPS模式
        "count": 10, // 每秒最大請求數
        "strategy": 0, // 直接模式
        "controlBehavior": 0, // 快速失敗策略
        "clusterMode": false // 非集群模式
    }
]
  • 定義了一個流控規則,限制 /api/hello 接口每秒最多允許 10 個請求。
  • 如果超過這個閾值,Sentinel 會阻止多余的請求,并返回 "Too many requests, please try again later."

SentinelDemoApplication.java

package com.example.sentineldemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Spring Boot應用主類
 */
@SpringBootApplication
public class SentinelDemoApplication {

    /**
     * 應用程序入口點
     *
     * @param args 命令行參數
     */
    public static void main(String[] args) {
        SpringApplication.run(SentinelDemoApplication.class, args);
    }
}

Sentinel配置類

package com.example.sentineldemo.config;

import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import com.alibaba.csp.sentinel.datasource.ReadableDataSource;
import com.alibaba.csp.sentinel.datasource.nacos.NacosDataSource;
import com.alibaba.csp.sentinel.slots.block.RuleConstant;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;
import java.util.List;

/**
 * Sentinel配置類
 */
@Configuration
publicclass SentinelConfig {

    /**
     * 初始化Sentinel規則
     */
    @PostConstruct
    private void initRules() {
        String serverAddr = "localhost"; // Nacos服務器地址
        String groupId = "DEFAULT_GROUP"; // 規則組名
        String dataId = "${spring.application.name}-flow-rules"; // 流控規則數據ID

        // 從Nacos讀取流控規則
        ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new NacosDataSource<>(serverAddr, groupId, dataId,
                source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {}));
        FlowRuleManager.register2Property(flowRuleDataSource.getProperty());

        String degradeDataId = "${spring.application.name}-degrade-rules"; // 降級規則數據ID
        // 從Nacos讀取降級規則
        ReadableDataSource<String, List<DegradeRule>> degradeRuleDataSource = new NacosDataSource<>(serverAddr, groupId, degradeDataId,
                source -> JSON.parseObject(source, new TypeReference<List<DegradeRule>>() {}));
        DegradeRuleManager.register2Property(degradeRuleDataSource.getProperty());
    }

    /**
     * 自定義請求來源解析器
     *
     * @return RequestOriginParser實例
     */
    @Bean
    public RequestOriginParser requestOriginParser() {
        return request -> request.getHeader("origin"); // 使用HTTP頭中的origin字段作為請求來源
    }
}

Controller

  • 使用 @SentinelResource 注解來標識需要保護的方法。
  • 當方法被調用時,Sentinel 會根據預先定義的規則進行檢查。
package com.example.sentineldemo.controller;

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.example.sentineldemo.exception.BlockExceptionHandler;
import com.example.sentineldemo.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * 控制器類,處理API請求
 */
@RestController
publicclass HelloController {

    @Autowired
    private HelloService helloService; // 注入服務層對象

    /**
     * 處理GET /api/hello請求
     *
     * @param name 請求參數,用戶名
     * @return 返回問候語
     */
    @GetMapping("/api/hello")
    @SentinelResource(value = "hello", blockHandlerClass = BlockExceptionHandler.class, blockHandler = "handleException")
    public String sayHello(@RequestParam(required = false) String name) {
        if (name == null || name.isEmpty()) {
            name = "World"; // 如果未提供名字,默認為"World"
        }
        return helloService.getGreeting(name); // 調用服務層獲取問候語
    }
}

全局異常處理器

  • 捕獲并處理由 Sentinel 拋出的 BlockException 異常。
  • 返回友好的錯誤信息給客戶端。
package com.example.sentineldemo.exception;

import com.alibaba.csp.sentinel.slots.block.BlockException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * 全局異常處理器
 */
@ControllerAdvice
publicclass GlobalExceptionHandler {

    /**
     * 處理Sentinel阻塞異常
     *
     * @param ex 異常對象
     * @return 返回錯誤信息和狀態碼
     */
    @ExceptionHandler(BlockException.class)
    public ResponseEntity<String> handleBlockException(BlockException ex) {
        returnnew ResponseEntity<>("Blocked by Sentinel: " + ex.getClass().getSimpleName(), HttpStatus.TOO_MANY_REQUESTS);
    }
}

Sentinel資源塊處理異常處理器

package com.example.sentineldemo.exception;

import com.alibaba.csp.sentinel.slots.block.BlockException;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeException;
import com.alibaba.csp.sentinel.slots.block.flow.FlowException;

/**
 * Sentinel資源塊處理異常處理器
 */
publicclass BlockExceptionHandler {

    /**
     * 處理Sentinel資源塊異常
     *
     * @param ex 異常對象
     * @return 返回錯誤信息
     */
    public static String handleException(BlockException ex) {
        if (ex instanceof FlowException) {
            return"Too many requests, please try again later."; // 流控異常處理
        } elseif (ex instanceof DegradeException) {
            return"Service is degraded, please try again later."; // 降級異常處理
        }
        return"Request blocked by Sentinel."; // 其他異常處理
    }
}

服務層

package com.example.sentineldemo.service;

import org.springframework.stereotype.Service;

/**
 * 服務層類,處理業務邏輯
 */
@Service
public class HelloService {

    /**
     * 獲取問候語
     *
     * @param name 用戶名
     * @return 返回問候語
     */
    public String getGreeting(String name) {
        return "Hello, " + name + "!"; // 構造問候語
    }
}


責任編輯:武曉燕 來源: Java知識日歷
相關推薦

2025-03-06 10:59:24

2023-10-07 12:06:52

2024-05-08 16:44:40

TCPRST網絡協議

2025-03-18 08:55:48

語言服務開發框架

2025-03-07 08:31:54

2022-05-03 19:38:15

限流微服務Sentinel

2017-08-03 09:37:35

SparkStreamKafkaDirect

2009-11-09 10:10:13

WCF異常

2011-08-03 10:39:06

IOS程序 HTTP 請求

2021-06-11 00:09:20

C#爬蟲版本

2025-03-12 08:42:28

2016-12-14 09:03:34

springhibernate異常

2020-09-15 08:38:13

Sentinel攔截Spring

2009-09-21 17:10:14

struts Hibe

2019-01-24 16:11:19

前端全局異常數據校驗

2025-04-23 08:50:00

SpringBootCurator分布式鎖

2023-11-17 09:38:21

2024-08-28 08:45:22

2017-08-10 10:28:43

SpringBootSpring

2025-09-08 09:14:31

SpringQuartz自動識別
點贊
收藏

51CTO技術棧公眾號

欧美日韩一区二区在线免费观看| 精品视频一区在线| 中文字幕人妻一区二| 成人午夜三级| 欧洲一区在线电影| 国产1区2区3区中文字幕| 天堂网www中文在线| 老司机精品视频一区二区三区| 久久精品一偷一偷国产| 香港三级日本三级| 黑人一区二区三区| 午夜精品久久久久久久久久| 一区二区三区四区在线视频| 内射无码专区久久亚洲| 热久久免费视频| 高清欧美性猛交xxxx黑人猛交| 手机毛片在线观看| 噜噜噜狠狠夜夜躁精品仙踪林| 欧美日本韩国一区二区三区视频| 亚洲美免无码中文字幕在线| 黄网页在线观看| 久久日一线二线三线suv| 亚洲aaaaaa| 中文字幕乱码中文字幕| 亚洲一区二区免费看| 久久91精品国产91久久跳| 亚洲图片第一页| 偷窥自拍亚洲色图精选| 日韩视频免费观看高清完整版 | 日韩av电影免费观看高清完整版| 色综合天天综合网国产成人网| 国产毛片欧美毛片久久久| 欧美91在线| 精品国产免费视频| 日本黄色一级网站| 日韩有码欧美| 欧美性xxxxx极品少妇| 精品视频在线观看一区| 午夜影院免费在线| 亚洲欧美激情一区二区| 在线看无码的免费网站| www.视频在线.com| 国产农村妇女精品| 日韩欧美亚洲v片| 免费在线稳定资源站| 99久久国产综合色|国产精品| 成人免费在线一区二区三区| aaa一区二区三区| 国内外成人在线| 成人黄色免费片| 国产一区二区女内射| 精久久久久久久久久久| 国产在线a不卡| 国产乱人乱偷精品视频| 激情文学综合丁香| av一区二区三区四区电影| va视频在线观看| 国产精品一卡二卡在线观看| 91沈先生在线观看| 精品国自产在线观看| 国产成人亚洲精品青草天美| 国产精品一区二区三区免费观看 | 亚洲人成在线一二| 国产一二三四五区| 成人午夜av| 精品激情国产视频| 激情五月少妇a| 一区二区毛片| 国产精品9999| 国产又粗又猛又爽又黄的| 精品在线观看视频| 亚洲jizzjizz日本少妇| 成人毛片在线免费观看| 91原创在线视频| 亚洲丰满在线| 中文av资源在线| 午夜精品久久久久久久久久久 | 国产偷国产偷亚洲清高网站| 亚洲国产欧美视频| 成人无号精品一区二区三区| 另类天堂视频在线观看| 日本一区二区免费在线观看| 亚洲女人av| 国产欧美va欧美va香蕉在| 国产美女无遮挡永久免费| 福利一区福利二区| 日本一区视频在线| 在线中文字幕-区二区三区四区| 亚洲成人免费观看| 欧美三级理论片| aaa国产精品视频| 国产亚洲综合久久| 唐朝av高清盛宴| 日韩精品高清不卡| 99国产超薄肉色丝袜交足的后果| 可以在线观看的av| 一区二区在线观看视频| 久久精品视频91| 日本免费一区二区视频| 亚洲欧美中文另类| 91aaa在线观看| 三级在线观看一区二区| 国产精品10p综合二区| 成人动漫在线播放| 天天亚洲美女在线视频| gogogo高清免费观看在线视频| 国产厕拍一区| 久久色精品视频| 天堂网中文字幕| 国产美女视频一区| 日韩精品最新在线观看| av第一福利在线导航| 欧美日韩国产另类不卡| 一区二区三区免费在线观看视频| 欧美一区二区三区久久精品| 国产精品久久久久高潮| 天堂中文在线资源| 亚洲精品国产无天堂网2021| 日本人视频jizz页码69| 亚洲欧美日本伦理| 97精品视频在线观看| 99热这里只有精品在线观看| 国产精品污污网站在线观看| 久久久999视频| 国产精品chinese在线观看| 久久精品国产69国产精品亚洲 | 欧美成人福利视频| 顶级黑人搡bbw搡bbbb搡| 久久久久久网| 欧美成人免费在线| 国产h片在线观看| 欧美成人福利视频| 妺妺窝人体色www婷婷| 国产精品一区二区在线播放| 亚洲开发第一视频在线播放| 羞羞影院欧美| 亚洲桃花岛网站| 国产精品va无码一区二区三区| proumb性欧美在线观看| 国产中文字幕乱人伦在线观看| 蜜桃精品一区二区三区| 免费不卡在线观看av| 91中文字幕在线播放| 国产精品乱码妇女bbbb| 日韩精品你懂的| 成人羞羞视频在线看网址| 国产精品视频男人的天堂 | 精品自拍视频在线观看| 国产男女无套免费网站| 亚洲人成在线观看一区二区| 国内av一区二区| 欧美日韩国产色综合一二三四| 91亚洲精品在线| 在线中文字幕电影| 欧美大肚乱孕交hd孕妇| 黄色小视频在线免费看| www.99精品| 日韩一级在线免费观看| 国产欧美一区二区精品久久久| 国产精品旅馆在线| 日本电影全部在线观看网站视频| 欧美日韩电影一区| 538任你躁在线精品视频网站| 国产麻豆视频一区| av无码久久久久久不卡网站| 欧美一级色片| 国产精品爽黄69| 性国产高清在线观看| 精品99999| 精品久久久久久久久久久久久久久久| 久久久777精品电影网影网 | 日韩中文字幕视频在线观看| 国产按摩一区二区三区| 香蕉影视欧美成人| 亚洲精品色午夜无码专区日韩| 久久99久久久欧美国产| 精品免费久久久久久久| 亚洲va久久| 成人免费大片黄在线播放| av影片在线| 一区二区亚洲欧洲国产日韩| 999国产精品视频免费| 午夜精彩视频在线观看不卡| 亚洲高潮女人毛茸茸| 国产一区二区精品在线观看| 欧美一区二区三区爽大粗免费| 日韩欧美中文| 国产日韩一区二区三区| 亚洲精品555| 欧美精品福利在线| 在线视频三区| 日韩电影中文 亚洲精品乱码| 91精品国产色综合久久不8| 亚洲国产视频在线| 永久免费观看片现看| 成人美女视频在线观看18| 人人爽人人av| 在线观看视频日韩| 亚洲三区在线观看| 另类ts人妖一区二区三区| 91精品视频免费观看| 国产高清不卡| 久久久免费在线观看| 在线国产情侣| 亚洲欧美第一页| 好男人在线视频www| 欧美日韩一区二区三区不卡| 国产成人亚洲精品自产在线| 自拍偷拍欧美精品| 亚洲午夜久久久久久久国产| 成a人片亚洲日本久久| 色综合五月婷婷| 日韩成人一级片| 欧美国产激情视频| 黄色在线一区| 中文字幕精品在线播放| 欧美日韩国产一区二区三区不卡| 国产经典一区二区三区| 欧美精品影院| 91精品久久久久久久久不口人| 成人免费看黄| 26uuu国产精品视频| 麻豆av在线免费观看| 欧美老肥婆性猛交视频| 色老头视频在线观看| 亚洲天堂av在线免费观看| 欧美一级在线免费观看 | 国产综合久久久久| 久久久人成影片一区二区三区在哪下载| 久久久久中文字幕2018| 性xxxxfjsxxxxx欧美| 九九九久久国产免费| aaa大片在线观看| 久久亚洲精品成人| 免费**毛片在线| 色偷偷88888欧美精品久久久| 可以在线观看的av| 一区二区三欧美| 国产女主播在线写真| 国产香蕉97碰碰久久人人| 久草在线青青草| 亚洲视频免费一区| 男男电影完整版在线观看| 国产丝袜一区二区| 久久精品蜜桃| 亚洲人成自拍网站| 91涩漫在线观看| 最近更新的2019中文字幕| 91啦中文在线| 久久久精品免费视频| 成人在线视频亚洲| 欧美劲爆第一页| 123区在线| 欧洲美女7788成人免费视频| 原纱央莉成人av片| 国产精品99久久99久久久二8| 日韩影片中文字幕| 国产精品亚洲第一区| 国产欧美视频在线| 国产精品手机视频| 午夜精品福利影院| 亚洲福利av在线| 91精品国产乱码久久久久久| 日韩一级片一区二区| 亚洲精品男同| 一级特黄性色生活片| 精彩视频一区二区| 国产激情第一页| 国产午夜精品一区二区| 国产老头老太做爰视频| 亚洲一区在线播放| 色老头在线视频| 91麻豆精品国产91久久久久久 | 成功精品影院| 欧美系列一区| 亚洲精品va| 日韩精品―中文字幕| 日本麻豆一区二区三区视频| 三级黄色片播放| 久久婷婷一区二区三区| 国产精品精品软件男同| 婷婷久久综合九色综合绿巨人| 日韩欧美一级大片| 精品三级在线观看| 黑人与亚洲人色ⅹvideos| 久久综合伊人77777| 日韩在线伦理| 成人在线免费观看视视频| 九色丨蝌蚪丨成人| 亚洲精品成人a8198a| 雨宫琴音一区二区在线| 日韩大片一区二区| www.亚洲免费av| 四虎影院中文字幕| 日本高清成人免费播放| 亚洲国产精品久久人人爱潘金莲| 亚洲视频自拍偷拍| 国产精品一区hongkong| 国产精品视频1区| 乱亲女h秽乱长久久久| 国产成人三级视频| 日本在线不卡视频一二三区| 黄色在线免费播放| 成人欧美一区二区三区1314| 综合激情网五月| 日韩三级精品电影久久久| jizzjizz在线观看| 9.1国产丝袜在线观看| 玖玖玖视频精品| 午夜一区二区三区| 亚洲在线电影| 69xxx免费视频| 亚洲欧美另类小说| 在线播放成人av| 亚洲美女精品成人在线视频| 欧美家庭影院| 91在线直播亚洲| 日韩在线观看电影完整版高清免费悬疑悬疑| 热99这里只有精品| 国产成人小视频| 深夜福利影院在线观看| 欧美精品日韩精品| 国产h在线观看| 国产成人在线一区二区| 首页亚洲中字| 日韩中文字幕在线视频观看| 国产成人福利片| 欧美日韩大片在线观看| 日韩欧美中文字幕制服| 3d玉蒲团在线观看| 2022国产精品| 中文字幕一区二区三区久久网站| 在线观看免费不卡av| 国产欧美视频在线观看| 91午夜精品亚洲一区二区三区| 日韩精品极品视频免费观看| 国产亚av手机在线观看| 国产不卡一区二区三区在线观看| 亚洲成人精品| 黑人无套内谢中国美女| 亚洲欧美日韩综合aⅴ视频| 亚洲怡红院av| 久久久国产一区二区| 亚洲天堂网站| 97av中文字幕| 国产成人在线视频免费播放| 妺妺窝人体色www婷婷| 亚洲电影成人av99爱色| 91破解版在线观看| 精品国产乱码久久久久久88av| 99成人精品| 欧洲美一区二区三区亚洲| 91黄色免费版| 色三级在线观看| 91沈先生播放一区二区| 极品av少妇一区二区| 色婷婷精品久久二区二区密| 午夜精品爽啪视频| 欧美男男同志| 国产精品自拍偷拍| 亚洲色图插插| 美女黄色一级视频| 日韩欧美精品免费在线| 成年人在线观看| 96pao国产成视频永久免费| 伊人久久成人| 亚洲图片另类小说| 777奇米四色成人影色区| 羞羞污视频在线观看| 精品国产乱码一区二区三区四区| 久久国产高清| 久久免费看少妇高潮v片特黄| 精品第一国产综合精品aⅴ| 国产精品专区免费| 中文字幕一区二区三区四区五区| 国产精品一二三| www亚洲视频| 精品国模在线视频| 国产乱人伦精品一区| 天堂在线资源视频| 一区二区在线观看免费| 国产免费永久在线观看| 亚洲aa中文字幕| 久久久久久久波多野高潮日日| 一级免费黄色录像| 亚洲精品色婷婷福利天堂| 成人乱码手机视频| 国内外成人激情视频| 最近中文字幕一区二区三区| 午夜成人免费影院| 国产精品一区二区女厕厕| 红桃视频欧美| 在线观看日本黄色| 亚洲国产精品小视频| 婷婷成人av| 久久综合久久色| 亚洲一区二区黄色| 日本视频在线免费观看| 久久久久久a亚洲欧洲aⅴ| 国产麻豆欧美日韩一区|