精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美久久视频| 日韩精品久久久久久久软件91| 91亚洲国产成人精品一区二三| 欧美自拍视频在线观看| 娇妻被老王脔到高潮失禁视频| 日韩色性视频| 午夜私人影院久久久久| 日韩中文一区二区三区| 丁香六月天婷婷| 日韩高清欧美激情| 欧美日韩aaaa| 日本人亚洲人jjzzjjz| 亚洲精品国产九九九| 色综合久久综合网97色综合| 潘金莲一级淫片aaaaa免费看| 午夜在线观看视频18| 精品一区二区久久久| 91国产美女视频| 午夜激情福利网| 精品成av人一区二区三区| 精品国产亚洲在线| 亚洲免费一级视频| 小草在线视频免费播放| 亚洲精品国产成人久久av盗摄| 欧美一级二级三级| 欧美熟女一区二区| 国产一区二区毛片| 国产精品美女午夜av| 国产一区二区三区影院| 午夜亚洲福利| 久久精品一本久久99精品| 色噜噜日韩精品欧美一区二区| 亚洲精品国产九九九| 在线综合+亚洲+欧美中文字幕| 欧美精品色婷婷五月综合| 性欧美ⅴideo另类hd| 国产精品久久久久久久久图文区| 鲁丝一区二区三区免费| 天天干天天草天天射| 粉嫩绯色av一区二区在线观看| 国产精品亚洲综合天堂夜夜| 欧美brazzers| 国产农村妇女精品一二区| 久久久久久久久久久人体| 中文字幕亚洲欧美日韩| 91蜜臀精品国产自偷在线| 在线成人一区二区| 亚洲一区二区自偷自拍 | 日韩午夜电影av| 中日韩av在线播放| 国产91在线播放精品| 在线观看日韩毛片| 能在线观看的av网站| 日韩三级影视| 欧美性色黄大片| 久久婷婷国产91天堂综合精品| 色婷婷综合久久久中字幕精品久久| 欧美日韩国产中字| 国产男女无遮挡| 中文字幕在线高清| 91福利国产精品| 91久久一区二区| 中文字幕9999| 色噜噜噜噜噜噜| 日韩中文欧美| www欧美日韩| 澳门黄色一级片| 激情欧美亚洲| 国产91精品久| 中文av免费观看| 国产一区在线看| 97久草视频| 人人妻人人澡人人爽久久av| 99久久精品久久久久久清纯| 免费日韩av电影| 岛国最新视频免费在线观看| 一区在线观看视频| av动漫在线播放| 九色porny自拍视频在线播放| 色婷婷综合久久久| www.久久91| 91成人午夜| 亚洲欧美日韩网| 91香蕉视频污在线观看| 一区二区三区四区在线观看国产日韩 | 国产精品素人一区二区| 吴梦梦av在线| 18aaaa精品欧美大片h| 欧美色xxxx| 九九热免费在线观看| 伊人久久影院| 亚洲三级av在线| 99热精品免费| 久久综合网络一区二区| 成人免费高清完整版在线观看| 亚洲av无码一区二区三区性色 | ririsao久久精品一区| 欧美性20hd另类| 奇米影视四色在线| 动漫3d精品一区二区三区乱码| 亚洲美女视频网| www深夜成人a√在线| 国产欧美二区| 成人激情视频小说免费下载| 天天操天天操天天干| 国产精品欧美一区喷水| xxxx18hd亚洲hd捆绑| 精品女同一区二区三区在线观看| 日韩精品一区二区在线| 久久久精品成人| 一级成人国产| 91av免费看| 成年网站在线| 亚洲电影在线播放| 日本一二区免费| 亚洲肉体裸体xxxx137| 九九热这里只有精品6| 免费视频网站在线观看入口| 成人午夜av影视| 一本久道久久综合| 国产精品av一区二区三区| 日韩三级视频中文字幕| 亚洲精品视频网址| 亚洲影音先锋| 粉嫩av四季av绯色av第一区| 午夜激情视频在线观看| 欧美性生交大片免费| 在线播放第一页| 婷婷另类小说| 国产精品自产拍高潮在线观看| 亚洲 小说区 图片区 都市| 亚洲精品视频在线看| 自拍偷拍 国产| 久久99国产精品视频| 国外成人免费在线播放| 国产av无码专区亚洲av麻豆| 国产精品国产自产拍在线| 午夜肉伦伦影院| 美女扒开腿让男人桶爽久久动漫| 欧美大片在线看免费观看| 91美女精品网站| 国产精品久久久久久久蜜臀| 在线免费视频一区| 国产一区二区三区探花 | 国产午夜精品视频一区二区三区| 123成人网| 亚洲欧美一区二区三区四区| 日韩一区二区视频在线| 95精品视频在线| 久草免费福利在线| 日韩一区二区三区精品| 欧美老少做受xxxx高潮| 国产喷水福利在线视频| 亚洲欧美区自拍先锋| 一级做a爱视频| 欧美+日本+国产+在线a∨观看| 成人免费淫片视频软件| 黄网站在线免费| 91精品国产色综合久久久蜜香臀| 中国一级片在线观看| 国产久卡久卡久卡久卡视频精品| 国产奶头好大揉着好爽视频| 国产aa精品| 色综合91久久精品中文字幕 | 亚洲精品第一| 欧美乱大交xxxxx| 亚洲国产www| 亚洲成av人综合在线观看| 欲求不满的岳中文字幕| 国产亚洲永久域名| 日韩电影免费观看高清完整| jizzjizz少妇亚洲水多| 欧美精品一区三区| 亚洲国产精品一| 大伊人狠狠躁夜夜躁av一区| 日本激情小视频| 毛片av一区二区| 91国在线高清视频| 欧美日韩精品一区二区三区在线观看| 91国语精品自产拍在线观看性色| 四虎在线免费看| 欧美吞精做爰啪啪高潮| 视频这里只有精品| 成人免费黄色大片| 日韩免费高清在线| 欧美大片一区| 欧美一区二区三区四区五区六区 | 欧美理论片在线播放| 亚洲精品一区二区三区婷婷月| 在线观看你懂的网站| 亚洲欧美怡红院| 欧美日韩人妻精品一区在线| 日韩电影免费在线观看网站| 日本美女爱爱视频| 蜜桃一区二区| 97人人澡人人爽| 国产精品字幕| 久久久久久久久久久免费精品 | 精品国产一区二区三区不卡蜜臂| 日本免费久久高清视频| 岛国中文字幕在线| 精品亚洲国产成av人片传媒| 99国产精品99| 欧美午夜美女看片| 青青草原在线免费观看视频| 久久香蕉国产线看观看99| 91欧美一区二区三区| 亚洲影音一区| 久久男人资源站| 久久香蕉国产| 欧美精品免费观看二区| 日韩不卡在线视频| 国产精品美女视频网站| 日本在线播放一二三区| 另类天堂视频在线观看| 黄色av免费在线看| 精品久久久久久久久久久久包黑料 | 亚洲色图欧美| 日韩精品久久久| 国产精品白丝一区二区三区 | 国产日韩三级| 成人激情综合网| 一区二区电影免费观看| 久久久久久九九九| 国产网站在线免费观看| 在线播放日韩欧美| 欧美日韩国产中文字幕在线| 亚洲精品一区二区三区四区高清| 国产女同91疯狂高潮互磨| 在线看日本不卡| 国产日产精品一区二区三区| 亚洲一区二区三区中文字幕 | 1024成人| 欧美性潮喷xxxxx免费视频看| 99热精品久久| 一本一道久久久a久久久精品91| 曰本一区二区三区视频| 精品欧美一区二区精品久久| 96sao在线精品免费视频| 成人福利视频在线观看| 精品九九久久| 国产精品亚洲第一区| 岛国精品在线| 国产精品视频一区二区高潮| 欧洲一区二区三区精品| 国产97色在线| 欧美精品高清| 国产va免费精品高清在线| 欧美一级大黄| 国产精品久久久久久婷婷天堂 | 国产欧美大片| www.av中文字幕| 国产精品老牛| 成人免费无码av| 免费在线一区观看| 性猛交ⅹ×××乱大交| 久久99久久久久久久久久久| 午夜免费看毛片| 国内精品视频666| 中文字幕乱码在线人视频| 国产精品一区二区在线播放 | 在线观看毛片视频| 欧美日韩一区二区电影| 一区二区三区免费在线视频| 91精品国产一区二区| 精品久久久无码中文字幕| 亚洲成年人在线| 日韩美女一级视频| 亚洲欧美日韩国产成人| 色影院视频在线| 久久人人爽人人爽爽久久| 性直播体位视频在线观看| 午夜精品福利在线观看| 香蕉视频亚洲一级| 91久久精品国产91性色| 懂色av一区二区| 欧美日韩亚洲在线| 91久久夜色精品国产按摩| 男人天堂网站在线| 亚洲三级观看| 国产精品久久a| 国产99久久久国产精品 | 国产精品乱子久久久久| 老女人性淫交视频| 亚洲国产欧美在线人成| 一级黄色av片| 欧美一级视频精品观看| 亚洲欧美色视频| 久久久成人精品| 免费毛片b在线观看| 国产成人在线一区二区| 国产精品高清一区二区| 欧美高清一区二区| 久久久久久免费视频| 欧美综合在线播放| 美女国产一区二区三区| 国产在线不卡av| 国产精品日日摸夜夜摸av| 欧美一级高潮片| 欧美中文字幕亚洲一区二区va在线| 国产乱码久久久| 亚洲视频日韩精品| 女囚岛在线观看| 国产精品一区二区久久| 麻豆成人入口| 国产免费一区二区三区四在线播放| 午夜在线一区| 国内自拍偷拍视频| 国产精品乱人伦中文| 欧美啪啪小视频| 亚洲а∨天堂久久精品喷水| 色三级在线观看| 国产福利精品视频| 国产一区二区在线视频你懂的| 亚洲一区二区精品在线| 亚洲一区二区伦理| 99国产精品免费视频| 中文字幕av不卡| 99精品人妻国产毛片| 亚洲国产精品系列| 成人免费网址| 国产美女精品视频免费观看| 亚洲涩涩av| 99热在线这里只有精品| 国产高清一区日本| 长河落日免费高清观看| 一本久久a久久精品亚洲| www.激情五月.com| 精品国产美女在线| 另类一区二区| 日韩欧美亚洲在线| 欧美亚洲视频| 日本少妇毛茸茸| 亚洲国产精品久久久久秋霞影院 | 制服.丝袜.亚洲.中文.综合懂色| 日韩女优av电影在线观看| 麻豆av在线免费看| 国产色视频一区| 日韩精品91| 日韩av片专区| **性色生活片久久毛片| 国产一区二区女内射| www亚洲欧美| 999精品嫩草久久久久久99| 在线成人av电影| 韩日av一区二区| 中国毛片直接看| 日韩欧美在线影院| 超碰在线最新| 91最新国产视频| 欧美日韩视频| 99久久久无码国产精品性波多 | 欧美成年人视频网站| 久久wwww| h无码动漫在线观看| 成人黄色国产精品网站大全在线免费观看| 欧美成人一二三区| 精品国产91乱码一区二区三区| 毛片网站在线看| 国产一区二区黄色| 9国产精品视频| 久久久久久久久久久久| 色天使久久综合网天天| sese一区| 92裸体在线视频网站| 一区二区亚洲精品| 亚洲色图14p| 在线观看网站黄不卡| 无遮挡的视频在线观看| 亚洲影视中文字幕| 亚洲黄色天堂| 波多野结衣片子| 在线电影国产精品| 青草在线视频| 欧美亚洲爱爱另类综合| 久久av老司机精品网站导航| 九九在线观看视频| 精品亚洲一区二区三区| 日韩欧美精品一区二区综合视频| 99久re热视频精品98| 99久久国产综合精品色伊| 波多野结衣电影在线播放| 日韩小视频在线| 福利电影一区| 91视频免费版污| 亚洲综合av网| av网在线观看| 爱情岛论坛亚洲入口| 久久裸体视频| 久久久久久久久久久久久久免费看| 亚洲精品国产精品国产自| 992tv国产精品成人影院| 日韩激情视频一区二区| 久久久久免费观看| 国产婷婷一区二区三区久久| 欧美亚洲另类激情另类| 999精品色在线播放| 超碰97在线资源站| 在线成人免费视频| 成人国产二区|