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

硬核實(shí)戰(zhàn)!分布式系統(tǒng)接口安全三板斧:限流、防重放、簽名驗(yàn)證全攻略

云計(jì)算 分布式
限流的目的在于防止資源被過(guò)度消耗,從而避免?DoS/DDoS?攻擊和瞬時(shí)高并發(fā)帶來(lái)的雪崩效應(yīng)。對(duì)于分布式架構(gòu)來(lái)說(shuō),限流不僅要在?網(wǎng)關(guān)層?生效,還需要深入到?各微服務(wù)節(jié)點(diǎn),形成多層級(jí)的保護(hù)體系。

在更廣泛的分布式系統(tǒng)場(chǎng)景中,單一的防護(hù)措施遠(yuǎn)遠(yuǎn)不夠。系統(tǒng)需要面對(duì)復(fù)雜的攻擊手法,例如 大規(guī)模惡意請(qǐng)求、請(qǐng)求重放以及參數(shù)篡改 等。本文將聚焦于通用接口的三大安全防護(hù)手段,并結(jié)合工程實(shí)踐給出詳細(xì)實(shí)現(xiàn)方案:

  • 限流機(jī)制:抵御突發(fā)流量與惡意刷接口,保證系統(tǒng)穩(wěn)定性
  • 防重放策略:避免重復(fù)請(qǐng)求造成業(yè)務(wù)風(fēng)險(xiǎn)
  • 簽名校驗(yàn):防止請(qǐng)求數(shù)據(jù)被惡意篡改

通過(guò)這一系列措施,分布式系統(tǒng)不僅能在高并發(fā)場(chǎng)景下保持服務(wù)可用,還能有效阻斷潛在的攻擊通道。

限流機(jī)制:系統(tǒng)穩(wěn)定性的第一道防線

限流的核心目標(biāo)

限流的目的在于防止資源被過(guò)度消耗,從而避免 DoS/DDoS 攻擊和瞬時(shí)高并發(fā)帶來(lái)的雪崩效應(yīng)。對(duì)于分布式架構(gòu)來(lái)說(shuō),限流不僅要在 網(wǎng)關(guān)層 生效,還需要深入到 各微服務(wù)節(jié)點(diǎn),形成多層級(jí)的保護(hù)體系。

常見(jiàn)的限流算法

在工程實(shí)踐中,通常會(huì)使用以下幾種限流算法:

算法

核心機(jī)制

優(yōu)點(diǎn)

缺點(diǎn)

適用場(chǎng)景

固定窗口

固定時(shí)間段內(nèi)計(jì)數(shù)

實(shí)現(xiàn)簡(jiǎn)單,高效

臨界點(diǎn)突刺問(wèn)題

非關(guān)鍵接口

滑動(dòng)窗口

滑動(dòng)區(qū)間內(nèi)實(shí)時(shí)統(tǒng)計(jì)

精度高,平滑臨界

實(shí)現(xiàn)稍復(fù)雜

API 網(wǎng)關(guān)、分布式限流

漏桶算法

恒定速率處理請(qǐng)求

流量絕對(duì)平滑

無(wú)法應(yīng)對(duì)突發(fā)流量

流量整形、數(shù)據(jù)庫(kù)保護(hù)

令牌桶算法

令牌發(fā)放 + 消耗機(jī)制

支持突發(fā),靈活性高

實(shí)現(xiàn)復(fù)雜

微服務(wù)、方法級(jí)限流

在本文的實(shí)現(xiàn)方案中,我們采用 Redis + 滑動(dòng)窗口,以滿(mǎn)足分布式環(huán)境下的多節(jié)點(diǎn)限流需求。

Redis 滑動(dòng)窗口限流實(shí)現(xiàn)

Redis 的 有序集合(ZSet) 特性使其非常適合實(shí)現(xiàn)滑動(dòng)窗口算法。核心流程如下:

  1. 請(qǐng)求到達(dá)時(shí),計(jì)算窗口起始時(shí)間 T - W
  2. 使用 ZREMRANGEBYSCORE 移除過(guò)期時(shí)間戳。
  3. 使用 ZCOUNT 統(tǒng)計(jì)當(dāng)前窗口內(nèi)的請(qǐng)求數(shù)量。
  4. 若超出閾值,拒絕請(qǐng)求;否則寫(xiě)入當(dāng)前時(shí)間戳。
  5. 使用 Lua 腳本封裝,保證原子性。

對(duì)應(yīng)實(shí)現(xiàn)如下:

package com.icoderoad.security.limiter;


import java.util.LinkedList;
import java.util.Queue;


public class SlidingWindowRateLimiter {
    private final int limit; // 限流閾值
    private final long windowSize; // 滑動(dòng)窗口大小
    private final Queue<Long> requestTimestamps;


    public SlidingWindowRateLimiter(int limit, long windowSize) {
        this.limit = limit;
        this.windowSize = windowSize;
        this.requestTimestamps = new LinkedList<>();
    }


    public synchronized boolean tryAcquire() {
        long now = System.currentTimeMillis();
        while (!requestTimestamps.isEmpty() && now - requestTimestamps.peek() > windowSize) {
            requestTimestamps.poll();
        }
        if (requestTimestamps.size() < limit) {
            requestTimestamps.offer(now);
            return true;
        }
        return false;
    }
}

網(wǎng)關(guān)層限流

在 API 網(wǎng)關(guān)層 進(jìn)行全局流量控制,可有效抵御惡意流量對(duì)下游服務(wù)的沖擊。例如設(shè)置全局 QPS = 100,000,作為兜底防護(hù)。

// 路徑:/src/main/java/com/icoderoad/gateway/filter/GlobalRateLimitFilter.java
package com.icoderoad.gateway.filter;


import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;


import java.util.LinkedList;
import java.util.Queue;


/**
 * 全局限流過(guò)濾器(基于滑動(dòng)窗口)
 * 控制 API 網(wǎng)關(guān)層整體流量,避免惡意請(qǐng)求沖擊下游服務(wù)
 */
@Component
public class GlobalRateLimitFilter implements GlobalFilter, Ordered {


    // 每秒最大請(qǐng)求數(shù)(例如全局 QPS = 100,000)
    private static final int LIMIT = 100000;


    // 窗口大小(毫秒)
    private static final long WINDOW_SIZE = 1000;


    // 請(qǐng)求時(shí)間戳隊(duì)列
    private final Queue<Long> requestTimestamps = new LinkedList<>();


    /**
     * 滑動(dòng)窗口限流核心邏輯
     */
    private synchronized boolean tryAcquire() {
        long now = System.currentTimeMillis();


        // 移除過(guò)期的請(qǐng)求時(shí)間
        while (!requestTimestamps.isEmpty() && now - requestTimestamps.peek() > WINDOW_SIZE) {
            requestTimestamps.poll();
        }


        if (requestTimestamps.size() < LIMIT) {
            requestTimestamps.offer(now);
            return true;
        }
        return false;
    }


    @Override
    public Mono<Void> filter(ServerWebExchange exchange, org.springframework.cloud.gateway.filter.GatewayFilterChain chain) {
        if (!tryAcquire()) {
            // 超過(guò)限流閾值,返回 429
            exchange.getResponse().setStatusCode(HttpStatus.TOO_MANY_REQUESTS);
            return exchange.getResponse().setComplete();
        }
        // 放行
        return chain.filter(exchange);
    }


    @Override
    public int getOrder() {
        // 優(yōu)先級(jí)最高,先執(zhí)行限流判斷
        return -1;
    }
}

IP 限流

對(duì)攻擊者常用的 撞庫(kù)、短信轟炸 等行為,可以通過(guò) 單 IP 限制請(qǐng)求頻率 來(lái)攔截。若單 IP 在固定周期內(nèi)多次觸發(fā)限流規(guī)則,可直接拉黑。

// 路徑:/src/main/java/com/icoderoad/gateway/filter/IpRateLimitFilter.java
package com.icoderoad.gateway.filter;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;


import java.util.concurrent.TimeUnit;


/**
 * IP 限流過(guò)濾器(基于 Redis + 黑名單)
 * 攔截異常頻繁的請(qǐng)求,例如撞庫(kù)、短信轟炸
 */
@Component
public class IpRateLimitFilter implements GlobalFilter, Ordered {


    @Autowired
    private RedisTemplate<String, String> redisTemplate;


    // 配置參數(shù)
    private static final int LIMIT = 50;              // 單 IP 在周期內(nèi)最大請(qǐng)求數(shù)
    private static final long PERIOD = 60;            // 限流統(tǒng)計(jì)周期(秒)
    private static final int BLACKLIST_THRESHOLD = 5; // 觸發(fā)限流多少次后拉黑
    private static final long BLACKLIST_TIME = 3600;  // 黑名單時(shí)長(zhǎng)(秒)


    @Override
    public Mono<Void> filter(ServerWebExchange exchange, org.springframework.cloud.gateway.filter.GatewayFilterChain chain) {
        String ip = getClientIp(exchange);


        String blacklistKey = "ip:blacklist:" + ip;
        // 檢查是否在黑名單
        if (Boolean.TRUE.equals(redisTemplate.hasKey(blacklistKey))) {
            exchange.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
            return exchange.getResponse().setComplete();
        }


        String counterKey = "ip:counter:" + ip;
        Long count = redisTemplate.opsForValue().increment(counterKey);
        if (count == 1) {
            // 設(shè)置過(guò)期時(shí)間
            redisTemplate.expire(counterKey, PERIOD, TimeUnit.SECONDS);
        }


        if (count != null && count > LIMIT) {
            // 記錄觸發(fā)次數(shù)
            String triggerKey = "ip:trigger:" + ip;
            Long triggerCount = redisTemplate.opsForValue().increment(triggerKey);
            if (triggerCount == 1) {
                redisTemplate.expire(triggerKey, BLACKLIST_TIME, TimeUnit.SECONDS);
            }


            // 如果觸發(fā)次數(shù)超過(guò)閾值,拉黑
            if (triggerCount != null && triggerCount >= BLACKLIST_THRESHOLD) {
                redisTemplate.opsForValue().set(blacklistKey, "1", BLACKLIST_TIME, TimeUnit.SECONDS);
            }


            exchange.getResponse().setStatusCode(HttpStatus.TOO_MANY_REQUESTS);
            return exchange.getResponse().setComplete();
        }


        return chain.filter(exchange);
    }


    /**
     * 獲取客戶(hù)端真實(shí) IP
     */
    private String getClientIp(ServerWebExchange exchange) {
        String ip = exchange.getRequest().getHeaders().getFirst("X-Forwarded-For");
        if (ip == null || ip.isEmpty()) {
            ip = exchange.getRequest().getRemoteAddress() != null ?
                    exchange.getRequest().getRemoteAddress().getAddress().getHostAddress() : "unknown";
        } else {
            // 取第一個(gè) IP
            ip = ip.split(",")[0];
        }
        return ip;
    }


    @Override
    public int getOrder() {
        // 高優(yōu)先級(jí)執(zhí)行,避免攻擊流量進(jìn)入業(yè)務(wù)邏輯
        return -2;
    }
}

微服務(wù)層限流

服務(wù)級(jí)別的限流側(cè)重 自治能力,例如對(duì)某個(gè)接口設(shè)置 QPS = 200,以避免單服務(wù)過(guò)載影響全局。

// 路徑:/src/main/java/com/icoderoad/service/filter/ResourceLimiterFilter.java
package com.icoderoad.service.filter;


import com.alibaba.nacos.api.config.annotation.NacosValue;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;


import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;


/**
 * 微服務(wù)級(jí)別的接口限流過(guò)濾器
 * 支持從 Nacos 動(dòng)態(tài)加載配置,實(shí)現(xiàn)服務(wù)自治
 */
@Component
public class ResourceLimiterFilter extends OncePerRequestFilter {


    // Nacos 動(dòng)態(tài)配置:例如 {"api:/order/create":200,"api:/user/login":100}
    @NacosValue(value = "${service.limiter.config:{}}", autoRefreshed = true)
    private String limiterConfig;


    // 保存各接口的限流器
    private final Map<String, SimpleRateLimiter> limiters = new ConcurrentHashMap<>();


    @Override
    protected void doFilterInternal(HttpServletRequest request,
                                    HttpServletResponse response,
                                    FilterChain filterChain) throws ServletException, IOException {
        String uri = request.getRequestURI();
        int qpsLimit = getLimit(uri);


        if (qpsLimit > 0) {
            SimpleRateLimiter limiter = limiters.computeIfAbsent(uri, k -> new SimpleRateLimiter(qpsLimit));
            if (!limiter.tryAcquire()) {
                response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value());
                response.getWriter().write("Too Many Requests for API: " + uri);
                return;
            }
        }


        filterChain.doFilter(request, response);
    }


    /**
     * 根據(jù) URI 獲取限流閾值(從 Nacos 動(dòng)態(tài)配置加載)
     */
    private int getLimit(String uri) {
        try {
            // 假設(shè)配置格式是 JSON:{"api:/order/create":200,"api:/user/login":100}
            Map<String, Object> configMap = new com.fasterxml.jackson.databind.ObjectMapper()
                    .readValue(limiterConfig, Map.class);
            Object limit = configMap.get("api:" + uri);
            return limit != null ? Integer.parseInt(limit.toString()) : 0;
        } catch (Exception e) {
            return 0;
        }
    }


    /**
     * 簡(jiǎn)單的滑動(dòng)窗口限流器(服務(wù)級(jí)別)
     */
    static class SimpleRateLimiter {
        private final int limit;
        private final long windowSize = 1000L; // 1秒
        private long windowStart = System.currentTimeMillis();
        private int count = 0;


        public SimpleRateLimiter(int limit) {
            this.limit = limit;
        }


        public synchronized boolean tryAcquire() {
            long now = System.currentTimeMillis();
            if (now - windowStart > windowSize) {
                windowStart = now;
                count = 0;
            }
            if (count < limit) {
                count++;
                return true;
            }
            return false;
        }
    }
}

防重放機(jī)制:阻斷重復(fù)提交的風(fēng)險(xiǎn)

重放攻擊的典型手法是 攔截合法請(qǐng)求并重復(fù)發(fā)送,例如重復(fù)支付、重復(fù)下單。 防護(hù)策略常用 Nonce + Timestamp,確保請(qǐng)求 唯一且有時(shí)效性

  • Nonce(隨機(jī)數(shù)):保證請(qǐng)求唯一。
  • Timestamp(時(shí)間戳):限制請(qǐng)求有效期,例如 5 分鐘內(nèi)有效。
  • RequestId(唯一標(biāo)識(shí)):防止同一請(qǐng)求多次提交。

簽名校驗(yàn):確保請(qǐng)求未被篡改

簽名驗(yàn)證的核心思路是:請(qǐng)求參數(shù) + 隨機(jī)數(shù) + 請(qǐng)求方法 + 加密算法 生成簽名,服務(wù)端對(duì)其進(jìn)行解密和比對(duì),保證數(shù)據(jù)完整性。

簽名生成流程

  1. 生成隨機(jī)數(shù) requestId
  2. 使用公鑰加密生成 idSign
  3. 隨機(jī)抽取部分字符作為 idSecretIndex
  4. 拼接 URL / 方法 / requestId 等數(shù)據(jù),使用對(duì)稱(chēng)密鑰生成 signature
  5. 客戶(hù)端請(qǐng)求時(shí)在 Header 攜帶:
X-Request-ID: idSign
X-Request-Index: idSecretIndex
X-Signature: signature

前端簽名工具(Vue + Axios 示例)

// 路徑:/src/frontend/utils/signature.js
import CryptoJS from 'crypto-js'
import JSEncrypt from 'jsencrypt'


export function generateSignature(url, method, requestId, secretKey) {
  const signContent = [`url=${url}`, `method=${method}`, `requestId=${requestId}`].join('&')
  return CryptoJS.HmacSHA256(signContent, secretKey).toString(CryptoJS.enc.Hex)
}


export function encryptRequestId(requestId, publicKey) {
  const encryptor = new JSEncrypt()
  encryptor.setPublicKey(publicKey)
  return encryptor.encrypt(requestId)
}

總結(jié)

在分布式系統(tǒng)中,接口安全防護(hù)不是可選項(xiàng),而是生死攸關(guān)的必備能力。

  • 限流 保護(hù)系統(tǒng)不被突發(fā)流量擊垮,確保整體穩(wěn)定。
  • 防重放 避免業(yè)務(wù)重復(fù)執(zhí)行,保證交易安全。
  • 簽名校驗(yàn) 阻止數(shù)據(jù)被篡改,提升接口的可信度。

這三大措施相輔相成:

  • 限流提供流量層面的穩(wěn)定性;
  • 防重放確保請(qǐng)求唯一性;
  • 簽名校驗(yàn)保障數(shù)據(jù)完整性。

如果把分布式系統(tǒng)比作一座城市,那么限流就是交通燈,防重放是門(mén)禁系統(tǒng),而簽名驗(yàn)證則是身份證認(rèn)證。三者協(xié)同,才能讓城市安全高效地運(yùn)行。

在后續(xù)實(shí)踐中,還可以結(jié)合 零信任架構(gòu)、API 網(wǎng)關(guān)安全插件、AI 風(fēng)控模型 等手段,構(gòu)建更加全面的防御體系。

責(zé)任編輯:武曉燕 來(lái)源: 路條編程
相關(guān)推薦

2025-07-28 01:00:00

2013-07-03 11:13:58

DevOps

2022-12-12 11:22:52

數(shù)據(jù)中心新能源

2014-07-29 11:25:18

LinuxMySQL

2012-11-08 16:05:23

2011-03-09 15:23:25

Windows Ser

2020-09-03 15:32:08

Wireshark數(shù)據(jù)包分析

2017-03-23 10:54:58

LINUXMYSQL優(yōu)化

2009-11-10 12:08:15

2017-08-21 23:50:45

線上內(nèi)存OOM

2009-02-19 10:20:00

2024-12-04 11:09:10

2020-11-18 08:17:14

Java源碼Class

2023-09-25 15:34:14

2019-05-30 14:30:42

技術(shù)管理架構(gòu)

2020-03-09 13:37:49

Serverless無(wú)服務(wù)器騰訊云

2022-07-22 09:55:29

軟件工程師

2023-09-18 14:39:02

2022-05-07 11:47:36

服務(wù)器架構(gòu)

2021-02-15 22:07:18

項(xiàng)目策略模式
點(diǎn)贊
收藏

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

国产a级黄色片| 人妻av中文系列| 国产精品-色哟哟| 亚洲欧美综合国产精品一区| 欧美成人女星排名| 亚洲国产精品久久久久婷蜜芽| 国产一区二区三区不卡在线| 精品一区二区三区在线观看国产 | 在线观看国产精品入口| 日韩三级视频在线看| 草草久久久无码国产专区| 国产黄色在线播放| 国产精品综合在线视频| 欧美一二三视频| 天天操夜夜操av| 人体久久天天| 欧美一区二区精品| 日韩视频在线免费看| 中日韩高清电影网| 国产亚洲人成网站| 超碰97在线人人| 亚洲天堂国产精品| 亚洲一区二区三区高清不卡| 久久精品美女视频网站| 亚洲综合自拍网| 成人日韩视频| 在线看一区二区| 成品人视频ww入口| 国产在线69| 欧美激情一二三区| 久久riav二区三区| 草逼视频免费看| 日韩高清不卡一区| 91精品国产91久久| 欧美交换国产一区内射| 欧美限制电影| 亚洲美女久久久| 国产在线观看免费播放| 超碰国产精品一区二页| 在线亚洲+欧美+日本专区| 热99这里只有精品| 性欧美高清come| 中文字幕日韩一区二区| 日本精品视频一区| 无码精品人妻一区二区| 国产a视频精品免费观看| 91精品久久久久久久| 亚洲精品一区二区二区| 日韩在线一区二区三区| 日本一区二区三区在线播放| 69成人免费视频| 99热在线精品观看| 国a精品视频大全| 免费中文字幕视频| 国产精品第十页| 欧美成年人视频| 免费人成视频在线| 欧美日韩mv| 欧美二区在线播放| 欧美成人一区二区三区高清| 欧美一区不卡| 久久91精品国产| 久久久久久久极品内射| 欧美精品三区| 久久久视频精品| 日韩精品一卡二卡| 免费在线观看成人av| 欧美亚洲一区在线| 夜夜躁日日躁狠狠久久av| 美女视频黄 久久| 成人久久久久久久| 亚洲av永久无码国产精品久久| 国产99久久精品| 国产日韩一区二区| 精华区一区二区三区| 欧美激情一区二区三区蜜桃视频| 亚洲欧美久久234| av黄在线观看| 午夜精品久久久久久| 免费高清在线观看免费| 韩日一区二区| 91精品国产综合久久久久久| 伊人久久久久久久久| 欧美天堂影院| 在线观看久久av| 黄色a级片在线观看| 亚洲国产二区| 国产精品成人久久久久| 国产同性人妖ts口直男| 不卡的av在线播放| 日韩欧美一区二区三区四区| 免费av在线播放| 亚洲国产成人av网| 男女无套免费视频网站动漫| 免费精品一区| 精品伊人久久97| 蜜桃av免费观看| 影音先锋久久资源网| 国产精品久久久一区| www.色婷婷.com| 久久九九影视网| 国产激情在线看| 日韩新的三级电影| 日韩欧美你懂的| 国产高清一区二区三区四区| 欧美啪啪一区| 国产精品久久久久9999| 亚洲欧美黄色片| 中文字幕+乱码+中文字幕一区| 久久99久久久久久| 欧美美女被草| 亚洲人成在线观看网站高清| 少妇影院在线观看| 免费欧美在线视频| 免费在线一区二区| 超碰97国产精品人人cao| 欧美日韩视频在线第一区| 老司机免费视频| 亚洲色图国产| 国产精品老女人视频| 少妇av一区二区| 日韩美女精品在线| 免费看污黄网站| 日韩成人av在线资源| 久久69精品久久久久久久电影好| 波多野结衣在线观看一区| 成人丝袜18视频在线观看| 亚洲一区二区在线观| 日韩欧美精品电影| 亚洲国产成人久久| 久久久久久久久久久网| 国产又黄又大久久| 亚洲高清资源综合久久精品| 自拍一区在线观看| 亚洲精品久久久久| 日本a在线观看| 成人听书哪个软件好| 精品久久久无码人妻字幂| 婷婷久久免费视频| 日韩有码在线观看| 亚洲一级片免费看| 国产精品三级av| 色婷婷狠狠18| 日韩欧美精品| 国产日韩欧美日韩大片| 永久免费在线观看视频| 欧美日韩在线综合| 无码人妻丰满熟妇啪啪欧美| 日韩影院免费视频| 色女人综合av| 日本a人精品| 美日韩丰满少妇在线观看| 99久久精品国产一区色 | 久操免费在线视频| 国产精品一区二区三区99| 免费观看国产视频在线| 另类视频一区二区三区| 九九热最新视频//这里只有精品| av中文在线观看| 亚洲一区国产视频| 国产人成视频在线观看| 99xxxx成人网| 麻豆av一区二区三区| 九九热线视频只有这里最精品| 亚洲欧美日韩一区二区三区在线| 久久久久精彩视频| 亚洲天堂网中文字| 在线播放国产视频| 在线视频日韩| 亚洲精品一区二区三区四区五区| 欧美日韩破处视频| 欧美国产中文字幕| 日中文字幕在线| 欧美日韩一区小说| 久久久综合久久久| 91理论电影在线观看| xxx国产在线观看| 欧美福利视频| 欧美凹凸一区二区三区视频| 高清av一区二区三区| 久久综合国产精品台湾中文娱乐网| 午夜精品一二三区| 一本久道中文字幕精品亚洲嫩| 少妇视频一区二区| 成人激情小说网站| 簧片在线免费看| 欧美a级片一区| 蜜桃av噜噜一区二区三| 国产一区二区三区免费观看在线| 国内精品久久久久伊人av| 欧美日本韩国一区二区| 在线不卡a资源高清| 日本熟妇成熟毛茸茸| 国产欧美中文在线| 日批免费观看视频| 免费高清视频精品| 精品视频在线观看一区| 色狮一区二区三区四区视频| 国精产品99永久一区一区| 欧美一级做一级爱a做片性| 久久久久久久久久久网站| 国产三级电影在线| 亚洲成人999| 国产精品永久久久久久久久久| 懂色av影视一区二区三区| 一区二区国产精品精华液| 久久久噜噜噜久噜久久综合| 成人一区二区三区仙踪林| 久久婷婷麻豆| 大西瓜av在线| 欧美一区免费| 亚洲视频sss| 丝袜美腿综合| 国产欧美精品一区二区三区| 日韩女优在线观看| 欧美激情在线一区二区| 91精品又粗又猛又爽| 久久精品噜噜噜成人av农村| 欧美s码亚洲码精品m码| 自拍视频亚洲| 亚洲国产欧美一区二区三区不卡| 丁香五月缴情综合网| 91精品国产综合久久香蕉最新版| 国产精品999.| 亚洲综合欧美| 精品亚洲精品福利线在观看| 中文字幕一区二区三区人妻四季 | 国产麻豆视频精品| 亚欧美在线观看| 久久久精品网| 国模吧无码一区二区三区| 欧美激情1区2区| 在线成人性视频| 日本精品黄色| 手机看片福利永久国产日韩| 中文字幕精品影院| 久久精品日产第一区二区三区精品版| 亚洲视频国产| 国产精品18毛片一区二区| 日韩一区免费| 97操在线视频| 伊人久久噜噜噜躁狠狠躁| 114国产精品久久免费观看| 国产精品美女久久久久| 91免费在线视频| 亚洲伊人伊成久久人综合网| 国产精品亚洲美女av网站| 福利精品在线| 91精品美女在线| 精品久久国产一区| 亚洲综合一区二区不卡| 日韩在线亚洲| 国产精品一区二区三区四区五区| 91精品久久久久久综合五月天| 99在线看视频| 日韩最新在线| 欧美亚洲精品日韩| 精品免费在线| 超碰成人在线免费观看| 中文字幕亚洲精品乱码| 亚洲熟妇无码av在线播放| 在线视频亚洲| 男人搞女人网站| 激情久久五月天| av电影在线播放| 久久综合久久99| 任你操精品视频| 又紧又大又爽精品一区二区| 日本在线视频免费观看| 欧美视频在线看| 中文字幕在线观看你懂的| 日韩午夜在线播放| 亚洲色图欧美视频| 亚洲免费视频网站| 1769在线观看| 久久99精品久久久久久噜噜| 超碰91在线观看| 国产精品久久久91| 中文字幕日韩高清在线| 欧美久久久久久久| 99成人超碰| 色yeye免费人成网站在线观看| 日韩电影中文字幕在线观看| 免费一级在线观看| 精品国产一区二区三区在线观看| 先锋成人av| 日本精品性网站在线观看| 亚洲精品aaa| 韩日午夜在线资源一区二区| 精品国产乱码久久久久久果冻传媒| 一级特黄录像免费播放全99| 亚洲国产专区| 久热精品在线播放| 成人h动漫精品一区二区| 欧美人与性囗牲恔配| 伊人色综合久久天天人手人婷| 日韩中文字幕在线观看视频| 51精品秘密在线观看| 午夜福利理论片在线观看| 日韩天堂在线视频| 丝袜诱惑一区二区| 91精品国产高清久久久久久91裸体| 久操成人av| wwwwww欧美| 久久99久久精品| 在线观看日本中文字幕| 亚洲香蕉伊在人在线观| 一道本在线视频| 亚洲欧美制服综合另类| 日本高清在线观看| 国产人妖伪娘一区91| 天堂综合网久久| 国产成人亚洲综合无码| 久热成人在线视频| 国产免费一区二区三区网站免费| 亚洲成人手机在线| 国产日韩欧美一区二区东京热| 亚洲三级黄色在线观看| 国产99在线| 国产精品大全| 欧美aⅴ99久久黑人专区| 国产乱女淫av麻豆国产| 国产婷婷精品av在线| 日产精品久久久| 亚洲国产中文字幕久久网| 七七成人影院| 亚洲一区二区三区香蕉| 国产电影一区二区在线观看| 九热视频在线观看| 国产偷国产偷亚洲高清人白洁 | 精品成人国产| 欧美日韩一区二区区| 亚洲同性gay激情无套| 亚洲一级黄色大片| 日韩亚洲精品电影| yy6080久久伦理一区二区| 日韩免费av电影| 天堂久久久久va久久久久| 91精品国产自产| 欧美日韩国产精品| 污视频在线免费观看| 91av在线视频观看| 日韩深夜福利| 少妇性l交大片| 国产午夜亚洲精品不卡| 无码人妻精品一区二区三区蜜桃91 | 日本一区二区免费高清| 免费观看成人在线视频| 国产亚洲综合性久久久影院| 天天干天天插天天射| 在线播放国产一区中文字幕剧情欧美 | 亚洲自拍偷拍第一页| 亚洲视频电影在线| 任你躁av一区二区三区| 亚洲高清不卡在线观看| 五月婷婷免费视频| 国产成人在线精品| 大片网站久久| 欧美成人手机在线视频| 一区二区在线观看av| 天天干天天色天天| 日本久久久久久久久| 欧美日韩激情| 日本77777| 午夜亚洲国产au精品一区二区| 性感美女一级片| 国产精品日日做人人爱| 重囗味另类老妇506070| 给我看免费高清在线观看| 欧美在线影院一区二区| 黄色小网站在线观看| 国产日韩一区欧美| 日韩电影在线一区二区| 亚洲女人久久久| 欧美videofree性高清杂交| 久草在线资源福利站| 亚洲一区二区三区加勒比| 国产ts人妖一区二区| 在线观看污污网站| 美女av一区二区| 深爱激情久久| 91视频福利网| 色综合天天做天天爱| 久久国产精品一区| 九色视频成人porny| 蜜桃久久av一区| 国产在线免费视频| 在线视频欧美日韩| xvideos.蜜桃一区二区| 久久午夜夜伦鲁鲁一区二区| 一区二区三区四区在线| 精品视频二区| 99久久伊人精品影院| 久久一本综合频道| 欧美精品xxxxx| 在线观看日韩欧美| 卡通动漫国产精品| 在线视频一二区| 91福利国产成人精品照片| 羞羞电影在线观看www|