国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

開放平臺(tái)設(shè)計(jì)方案與實(shí)踐

共 13585字,需瀏覽 28分鐘

 ·

2021-05-19 09:12

點(diǎn)擊上方老周聊架構(gòu)關(guān)注我


一、背景

隨著業(yè)務(wù)的發(fā)展,越來越多的系統(tǒng)需要數(shù)據(jù)往來。那對(duì)外提供的接口也越來越多,而且各個(gè)接口散落在不同的項(xiàng)目中被調(diào)用,多了的話排查問題困難且混亂?;谶@個(gè)痛點(diǎn),我們有必要打造一套開放平臺(tái)來管理各個(gè) api 的調(diào)用情況。

二、開放平臺(tái)設(shè)計(jì)

我們先從整體的功能需求來分析,主要有以下幾點(diǎn):

  • 開發(fā)者身份注冊(cè)與數(shù)據(jù)權(quán)限范圍授權(quán)

  • 開發(fā)者獲取相關(guān)資料(接口文檔、使用說明、對(duì)接人聯(lián)系方式等)

  • 平臺(tái)方接入管理,申請(qǐng)審核流程、服務(wù)配置、服務(wù)管理、參數(shù)配置等

  • 平臺(tái)方運(yùn)營(yíng)管理,業(yè)務(wù)交易管理及統(tǒng)計(jì)報(bào)表分析

  • 安全層面需求,加密、應(yīng)用秘鑰、應(yīng)用接口權(quán)限控制、訪問黑白名單、字段脫敏還原等

  • 性能方面要求,客戶端緩存、服務(wù)端緩存、緩存等


這里老周給出自己的一個(gè)架構(gòu),大家可以參考下:

上面的設(shè)計(jì)方案更多的是針對(duì)比較大型的公司,想要把整個(gè)開平的能力建設(shè)完善。但市場(chǎng)上更多的是中小型公司,它們沒有太多的人力去開發(fā)與建設(shè)這么全面的開放平臺(tái)。

那如果是中小型公司,那它們的開放平臺(tái)如何不費(fèi)很大精力去實(shí)現(xiàn)呢?不管中小型還是大型公司的開放平臺(tái),上面說的那個(gè)圖中其它部分可以省略,但安全機(jī)制是必需的,也就是架構(gòu)圖中的統(tǒng)一鑒權(quán)。試想一下,作為提供給第三方調(diào)用接口的開放平臺(tái),如果安全機(jī)制不能保障,那外部誰都可以來調(diào)用你們公司的內(nèi)部資源,危害可想而知。

老周下面就來針對(duì)不同的業(yè)務(wù)場(chǎng)景來給出相應(yīng)的開放平臺(tái)安全機(jī)制的保障,也就是根據(jù)不同類型的網(wǎng)站給出相對(duì)應(yīng)的開放平臺(tái)設(shè)計(jì)方案。

三、小型網(wǎng)站

3.1 基于 session 的登錄認(rèn)證

在傳統(tǒng)的用戶登錄認(rèn)證中,因?yàn)?http 是無狀態(tài)的,所以都是采用 session 方式。用戶登錄成功,服務(wù)端會(huì)保存一個(gè) session,當(dāng)然會(huì)給客戶端一個(gè) sessionId,客戶端會(huì)把 sessionId 保存在 cookie 中,每次請(qǐng)求都會(huì)攜帶這個(gè) sessionId。服務(wù)器收到 sessionId,找到前期保存的數(shù)據(jù),由此得知用戶的身份。


對(duì)于小型網(wǎng)站,特別是單機(jī)系統(tǒng),基于 session 的登錄認(rèn)證方案已經(jīng)夠用了,而且簡(jiǎn)單高效。

四、中型網(wǎng)站

隨著用戶量的增多,上面基于 cookie + session 的這種模式缺點(diǎn)就顯現(xiàn)出來了,這種模式通常是保存在內(nèi)存中,而且服務(wù)從單服務(wù)到多服務(wù)會(huì)面臨 session 共享問題,開銷也隨即越來越大。

那中型網(wǎng)站的安全認(rèn)證機(jī)制是啥呢?接下來 JWT(JSON Web Token) 即將登場(chǎng),關(guān)于 JWT 的概念與原理,老周這里覺得還是有必要說一下。

4.1 JWT 的概念

4.1.1 什么是 JWT?

JWT 是一個(gè)開放的行業(yè)標(biāo)準(zhǔn)(RFC 7519),它定義了一種簡(jiǎn)潔的、自包含的協(xié)議格式,用于在通信雙方傳遞 json 對(duì)象,傳遞的信息經(jīng)過數(shù)字簽名可以被驗(yàn)證和信任。JWT 可以使用 HMAC 算法或使用 RSA的公鑰/私鑰對(duì)來簽名,防止被篡改。

說白了 JWT 就是一套基于 token 的身份認(rèn)證的方案,可以保證安全傳輸?shù)那疤嵯聜魉鸵恍┗镜男畔?,以減輕對(duì)外部存儲(chǔ)的依賴,減少了分布式組件的依賴,減少了硬件的資源。

可實(shí)現(xiàn)無狀態(tài)、分布式的 Web 應(yīng)用授權(quán),JWT 的安全特性保證了 token 的不可偽造和不可篡改。

本質(zhì)上是一個(gè)獨(dú)立的身份驗(yàn)證令牌,可以包含用戶標(biāo)識(shí)、用戶角色和權(quán)限等信息,以及您可以存儲(chǔ)任何其他信息(自包含)。任何人都可以輕松讀取和解析,并使用密鑰來驗(yàn)證真實(shí)性。

4.1.2 JWT 令牌結(jié)構(gòu)

JWT 令牌由三部分組成,每部分中間使用點(diǎn)(.)分隔,比如:xxxxx.yyyyy.zzzzz

  • Header
    頭部包括令牌的類型(即JWT)及使用的哈希算法(如HMAC SHA256或RSA),例如:

    {
        "alg""HS256"
        "typ""JWT"
    }

    將上邊的內(nèi)容使用 Base64Url 編碼,得到一個(gè)字符串就是 JWT 令牌的第一部分。

  • Payload
    第二部分是負(fù)載,內(nèi)容也是一個(gè) json 對(duì)象,它是存放有效信息的地方,它可以存放 jwt 提供的現(xiàn)成字段,比如:iss(簽發(fā)者),exp(過期時(shí)間戳),sub(面向的用戶)等,也可自定義字段。此部分不建議存放敏感信息,因?yàn)榇瞬糠挚梢越獯a還原原始內(nèi)容。最后將第二部分負(fù)載使用 Base64Url 編碼,得到一個(gè)字符串就是 JWT 令牌的第二部分。一個(gè)例子:

    {
        "sub""1234567890"
        "name""微信公眾號(hào)【老周料架構(gòu)】"
        "iat"1516239022
    }
  • Signature
    第三部分是簽名,此部分用于防止 jwt 內(nèi)容被篡改。這個(gè)部分使用 base64url 將前兩部分進(jìn)行編碼,編碼后使用點(diǎn)(.)連接組成字符串,最后使用 header 中聲明簽名算法進(jìn)行簽名。
    secret:簽名所使用的密鑰。

    HMACSHA256 ( 
        base64UrlEncode(header) + "." + base64UrlEncode(payload), secret
    )

    驗(yàn)簽過程描述:獲取 token 值,讀取 Header 部分并 Base64 解碼,得到簽名算法。根據(jù)以上方法算出簽名,如果簽名信息不一致,說明是非法的。

4.2 JWT 的流程



4.3 JWT 代碼案例

如果你們公司有第三方應(yīng)用接入的開放平臺(tái),那可以在里面走相應(yīng)的接入流程得到 appId 和 appSecret。如果沒有的話,那可以簡(jiǎn)單點(diǎn)與第三方約定相應(yīng)的 appId 和 appSecret。老周這里假設(shè)你們已經(jīng)約定好了,我這里直接放在請(qǐng)求頭里來獲取 token,還有其它的方式,比如放在請(qǐng)求參數(shù)或者 cookie 里。

4.3.1 maven 依賴

<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>3.4.1</version>
</dependency>

4.3.2 JWTUtil 工具類

public class JWTUtil {
    private static String SECRETE = "default_secrete";
    private static String APP_ID = "zhifubao";
    private static String APP_SECRETE = "123abc";

    /**
     * 傳入 appId、appSecret 進(jìn)行驗(yàn)證
     * @param appId 應(yīng)用id
     * @param appSecret 應(yīng)用密鑰
     * @return 返回一個(gè)加密 JWT token
     */

    public static String getToken(String appId, String appSecret) {
        String token = JWT.create()
                // 存放 payload 數(shù)據(jù)
                .withClaim("appId", appId)
                .withClaim("appSecret", appSecret)
                // 使用 SECRETE 對(duì)稱加密生成 signature
                .sign(Algorithm.HMAC256(SECRETE));
        return token;
    }

    /**
     * 驗(yàn)證 token
     * @param token
     * @return
     */

    public static boolean verifyToken(String token) {
        HashMap<String, String> map = new HashMap<>();
        // 通過 SECRETE 和相同的對(duì)稱加密算法反加密
        DecodedJWT jwt = JWT.require(Algorithm.HMAC256(SECRETE))
                .build().verify(token);
        // 獲得你儲(chǔ)存的 payload 信息
        String appId = jwt.getClaim("appId").asString();
        String appSecret = jwt.getClaim("appSecret").asString();
        if (APP_ID.equals(appId) && APP_SECRETE.equals(appSecret)) {
            return true;
        }
        return false;
    }
}

4.3.3 JWTController 類

@RestController
public class JWTController {
    @RequestMapping("/getToken")
    public String getToken(@RequestHeader("appId") String appId, @RequestHeader("appSecret") String appSecret) {
        return JWTUtil.getToken(appId, appSecret);
    }
}

4.3.4 測(cè)試


拓展:這個(gè)私鑰 secrete 是固定的,為了加強(qiáng)安全,你甚至可以使用動(dòng)態(tài)的 secrete 私鑰,
例如:動(dòng)態(tài)私鑰 = 靜態(tài)私鑰 + 用戶的 ip,這樣即使別人得到了用戶的 token,也會(huì)因?yàn)?ip 不一致而訪問失敗。

拿到了應(yīng)用資源服務(wù)器的 token 令牌了,那我們拿這個(gè)令牌去訪問相應(yīng)的資源看看。

@RequestMapping("/getResource")
public String getResource(String resourceId) {
    return resourceId + " 資源獲取成功";
}

簡(jiǎn)單模擬一個(gè)請(qǐng)求,直接返回該資源獲取成功。我們接下來就用 postman 工具來模擬一下這個(gè)資源服務(wù)器的這個(gè)接口請(qǐng)求。



認(rèn)證失敗了,這是因?yàn)槲覀儧]有在請(qǐng)求頭里填剛剛獲取的 token。我們把通過調(diào)用 getToken 接口獲取的 token 值放在在請(qǐng)求頭,然后認(rèn)證通過,獲取到了資源服務(wù)器的資源。



4.3.5 繼續(xù)追問

這里你有可能問了,老周,這里咋就帶上 token 在請(qǐng)求頭就可以獲取到了資源服務(wù)器的資源啊。

我把代碼貼出來,你一看就知道了。

這里寫了一個(gè) token 的攔截器,對(duì)請(qǐng)求頭的 token 進(jìn)行驗(yàn)簽,通過才放行。

@Component
public class TokenInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String token = request.getHeader("token");
        if (token != null) {
            boolean result = JWTUtil.verifyToken(token);
            if (result) {
                System.out.println("通過攔截器");
                return true;
            }
        }

        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/json; charset=utf-8");
        try{
            response.getWriter().append("認(rèn)證失敗,無效的token令牌!");
            System.out.println("認(rèn)證失敗,無效的token令牌!");
        } catch (Exception e) {
            e.printStackTrace();
            response.sendError(500);
            return false;
        }
        return false;
    }
}

這里有個(gè)攔截器配置類,把需要攔截的 api 路徑放進(jìn)來,然后會(huì)對(duì)某個(gè) api 進(jìn)行細(xì)粒度的管控。

@Configuration
public class IntercepterConfig implements WebMvcConfigurer {
    private TokenInterceptor tokenInterceptor;

    public IntercepterConfig(TokenInterceptor tokenInterceptor){
        this.tokenInterceptor = tokenInterceptor;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        List<String> excludePath = new ArrayList<>();
        excludePath.add("/getResource/");
        excludePath.add("/static/**");  //靜態(tài)資源
        registry.addInterceptor(tokenInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns(excludePath);
        WebMvcConfigurer.super.addInterceptors(registry);
    }
}

這就實(shí)現(xiàn)中型網(wǎng)站安全認(rèn)證機(jī)制了,細(xì)心的讀者可能會(huì)發(fā)現(xiàn),這個(gè) token 是固定的,會(huì)存在一些不安全。是的,我上面也說了,可以用動(dòng)態(tài)的 secrete 私鑰或者 token 過期機(jī)制來繼續(xù)保證更高的安全性。

五、大型網(wǎng)站

大型網(wǎng)站的話,針對(duì)中型網(wǎng)站的方案就不太可行了,為什么呢?由于大型網(wǎng)站的請(qǐng)求流量很大,而 token 由于自包含信息,因此一般數(shù)據(jù)量較大,而且每次請(qǐng)求都需要傳遞,因此比較占帶寬。另外,token 的簽名驗(yàn)簽操作也會(huì)給 cpu 帶來額外的處理負(fù)擔(dān)。可以采用微服務(wù)統(tǒng)一認(rèn)證方案 Spring Cloud OAuth2,那什么情況下需要使用 OAuth2?

  • 第三方授權(quán)登錄的場(chǎng)景:比如,我們經(jīng)常登錄一些網(wǎng)站或者應(yīng)用的時(shí)候,可以選擇使用第三方授權(quán)登錄的方式,比如:微信授權(quán)登錄、QQ授權(quán)登錄、微博授權(quán)登錄等,這是典型的 OAuth2 使用場(chǎng)景。

  • 單點(diǎn)登錄的場(chǎng)景:如果項(xiàng)目中有很多微服務(wù)或者公司內(nèi)部有很多服務(wù),可以專?做一個(gè)認(rèn)證中心(充當(dāng)認(rèn)證平臺(tái)?色),所有的服務(wù)都要到這個(gè)認(rèn)證中心做認(rèn)證,只做一次登錄,就可以在多個(gè)授權(quán)范圍內(nèi)的服務(wù)中自由串行。

5.1 OAuth2 構(gòu)建微服務(wù)統(tǒng)一認(rèn)證服務(wù)思路


注意:在我們統(tǒng)一認(rèn)證的場(chǎng)景中,Resource Server 其實(shí)就是我們的各種受保護(hù)的微服務(wù),微服務(wù)中的 各種 API 訪問接口就是資源,發(fā)起 http 請(qǐng)求的瀏覽器就是 Client 客戶端(對(duì)應(yīng)為第三方應(yīng)用)。

5.1.1 搭建認(rèn)證服務(wù)器(Authorization Server)

5.1.1.1 maven 依賴文件


5.1.1.2 application.yml 文件



5.1.1.3 OauthServerApplication9999 啟動(dòng)類


5.1.1.4 認(rèn)證服務(wù)器配置類


5.1.1.5 認(rèn)證服務(wù)器安全配置類



5.1.1.6 測(cè)試

5.1.1.6.1 獲取 token

http://localhost:9999/oauth/token?client_secret=abcxyz&grant_type=password&username=admin&password=123456&client_id=client_riemann

endpoint:/oauth/token

獲取token攜帶的參數(shù)
client_id:客戶端id
client_secret:客戶單密碼
grant_type:指定使用哪種頒發(fā)類型,password
username:用戶名
password:密碼



5.1.1.6.2 校驗(yàn) token

http://localhost:9999/oauth/check_token?token=28317df7-4036-4bbb-8bb3-12f71fa07802


如果出現(xiàn)以上頁面,表明 token 過期了,設(shè)置的是 20s。所以要在 20s 以內(nèi)校驗(yàn)才會(huì)生效。

下面才是 token 校驗(yàn)成功的效果:


5.1.1.6.3 刷新 token

http://localhost:9999/oauth/token?grant_type=refresh_token&client_id=client_riemann&client_secret=abcxyz&refresh_token=68582d02-3a1d-4c31-ae22-ac7e84824d0d



5.1.2 搭建資源服務(wù)器(希望訪問被認(rèn)證的微服務(wù))

5.1.2.1 資源服務(wù) Resource Server 配置類


5.1.2.2 測(cè)試





此測(cè)試結(jié)果也印證了代碼的效果



我們加上帶上token測(cè)下看看:


5.2 OAuth2 統(tǒng)一認(rèn)證服務(wù)思考

  • 當(dāng)我們第一次登陸之后,認(rèn)證服務(wù)器頒發(fā) token 并將其存儲(chǔ)在認(rèn)證服務(wù)器中,后期我們 訪問資源服務(wù)器時(shí)會(huì)攜帶 token,資源服務(wù)器會(huì)請(qǐng)求認(rèn)證服務(wù)器驗(yàn)證 token 有效性,如果資源服務(wù)器有很多,那么認(rèn)證服務(wù)器壓力會(huì)很大。

  • 另外,資源服務(wù)器向認(rèn)證服務(wù)器 check_token,獲取的也是用戶信息 UserInfo,能否把用戶信息存儲(chǔ)到令牌中,讓客戶端一直持有這個(gè)令牌,令牌的驗(yàn)證也在資源服務(wù)器進(jìn)行,這樣避免和認(rèn)證服務(wù)器頻繁的交互。

  • 我們可以考慮使用 JWT 進(jìn)行改造,使用 JWT 機(jī)制之后資源服務(wù)器不需要訪問認(rèn)證服務(wù)器。

5.3 JWT 改造統(tǒng)一認(rèn)證授權(quán)中心的令牌存儲(chǔ)機(jī)制

JWT 在上面中型網(wǎng)站那一節(jié)說過了,這里就不重復(fù)說了,老周直接上代碼了。

5.3.1 認(rèn)證服務(wù)器端 JWT 改造(改造主配置類)


5.3.2 修改 JWT 令牌服務(wù)方法



5.3.3 認(rèn)證服務(wù)器端測(cè)試


可以看出,使用 jwt 令牌生成的 access_token 和上一篇的不一樣。

我們用這個(gè)網(wǎng)站:https://jwt.io/#encoded-jwt 把該 access_token 進(jìn)行解碼,解碼如下:



其他兩個(gè)驗(yàn)證 token、刷新 token 跟上一篇類似。

5.3.4 資源服務(wù)器校驗(yàn) JWT 令牌

不需要和遠(yuǎn)程認(rèn)證服務(wù)器交互,添加本地 tokenStore。



5.3.5 源服務(wù)器端測(cè)試



這樣就完成了資源服務(wù)根據(jù)事先約定的算法自行完成令牌校驗(yàn),無需每次都請(qǐng)求認(rèn)證服務(wù)完成授權(quán)。

六、總結(jié)

老周首先從開放平臺(tái)的整體功能設(shè)計(jì)來分析了有如下幾個(gè)要點(diǎn):開發(fā)者認(rèn)證、開放平臺(tái)內(nèi)部管理系統(tǒng)、安全機(jī)制以及性能。

但考慮很多公司它們沒有太多的人力去開發(fā)與建設(shè)這么全面的開放平臺(tái),故抓住其中的最核心的一點(diǎn),那就是安全機(jī)制。

針對(duì)于安全機(jī)制來說,不同類型的網(wǎng)站有不同的安全機(jī)制保障。

  • 小型網(wǎng)站:基于 session 的登錄認(rèn)證,在小型網(wǎng)站特別是單機(jī)系統(tǒng),這種方案夠用了,而且簡(jiǎn)單高效;

  • 中型網(wǎng)站:到了中型網(wǎng)站,服務(wù)肯定是分布式部署的,這個(gè)時(shí)候小型網(wǎng)站中基于 session 的登錄認(rèn)證方案的缺點(diǎn)就暴露出來了。每個(gè)應(yīng)用服務(wù)都需要在 session 中存儲(chǔ)用戶身份信息,通過負(fù)載均衡將本地的請(qǐng)求分配到另一個(gè)應(yīng)用服務(wù)需要將 session 信息帶過去,否則會(huì)重新認(rèn)證。我們還要通過 session 共享、session 黏貼等方案來解決。從而引入了第三方分布式組件,比如 redis,增加了系統(tǒng)的復(fù)雜性。并且 session 方案還有另一個(gè)缺點(diǎn),比如基于 cookie,移動(dòng)端不能有效使用等。所以中型網(wǎng)站的話基于 JWT 的 token 認(rèn)證機(jī)制,服務(wù)端不用存儲(chǔ)認(rèn)證數(shù)據(jù),易維護(hù)擴(kuò)展性強(qiáng),客戶端可以把 token 存在任意地方,并且可以實(shí)現(xiàn) web 和 app 統(tǒng)一認(rèn)證機(jī)制。

  • 大型網(wǎng)站:到了大型網(wǎng)站,請(qǐng)求量也隨之暴漲,中型網(wǎng)站的 token 認(rèn)證機(jī)制的缺點(diǎn)也逐步暴露出來了,token 由于自包含信息,因此 一般數(shù)據(jù)量較大,而且每次請(qǐng)求都需要傳遞,因此比較占帶寬。另外,token 的簽名驗(yàn)簽操作也會(huì)給 cpu 帶來額外的處理負(fù)擔(dān)。這個(gè)時(shí)候得采用微服務(wù)統(tǒng)一認(rèn)證方案 Spring Cloud OAuth2,后面我們又對(duì) OAuth2 進(jìn)行了一些優(yōu)化,因?yàn)榇笮途W(wǎng)站的開平請(qǐng)求流量會(huì)很大,資源服務(wù)器會(huì)請(qǐng)求認(rèn)證服務(wù)器驗(yàn)證 token 有效性,那么認(rèn)證服務(wù)器壓力會(huì)很大。另外,資源服務(wù)器向認(rèn)證服務(wù)器 check_token,獲取的也是用戶信息 UserInfo,能否把用戶信息存儲(chǔ)到令牌中,讓客戶端一直持有這個(gè)令牌,令牌的驗(yàn)證也在資源服務(wù)器進(jìn)行,這樣避免和認(rèn)證服務(wù)器頻繁的交互。所以我們后續(xù)使用 JWT 進(jìn)行改造,使用 JWT 機(jī)制之后資源服務(wù)器不需要訪問認(rèn)證服務(wù)器。性能以及安全機(jī)制都得到了有力保障。


歡迎大家關(guān)注我的公眾號(hào)【老周聊架構(gòu)】,Java后端主流技術(shù)棧的原理、源碼分析、架構(gòu)以及各種互聯(lián)網(wǎng)高并發(fā)、高性能、高可用的解決方案。

喜歡的話,點(diǎn)贊、再看、分享三連。

點(diǎn)個(gè)在看你最好看



瀏覽 142
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产精品激情| 嫩BBB槡BBBB槡BBB| 精品无码久久久| 最近最火中文字幕mv歌词| aaa少妇| 亚洲精品成人7777777| 亚洲无码AV网站| 久久久无码AV| 国产91探花系列在线观看| 三级网址在线观看| 日韩成人无码人妻| 大香蕉东京热| 波多野结衣av在线观看| 粉嫩99精品99久久久久久特污兔 | 欧美激情四射| 亚洲无码一区二区三| 蜜桃黄片AV在线观看| 黄色av免费| 成人在线不卡| 国产日女人| 老熟女搡BBBB搡BBBB视频| 久久午夜福利视频| 亚洲天堂中文字幕| 亚洲女人被黑人巨大进入| 探花视频在线观看| 成人网大香蕉| 国产系列第一页| 亚洲V在线观看| 操逼视频在线| 日本黄色三级视频| 久草网在线| 囯产精品久久久久久久久免费无码| 在线观看亚洲中文字幕| 亚洲人成高清| 波多野结衣vs黑人巨大| 2018天天操| 四虎成人网站| 水蜜桃91| 亚洲无线视频| 精品视频在线观看免费| 五月天综合在线| 色小哥| 狠狠AV| 人人草人人摸| 激情六月天| 偷拍第一页| 欧美精品人妻| 久久精品成人导航| 成人在线综合| 免费视频在线观看一区| 九九射| 麻豆精品一区二区三区| 思思热思思操免费视频| 国产成人精品八戒| 九九九免费视频| 黄色免费在线观看视频| 亚洲综合免费观看高清完整版| 欧美丰满美乳XXⅩ高潮www| 日本视频精品| 苍井空无码在线观看| 欧亚一区二区| 日本绿色精品视频| 成人资源站| 成人三级AV在线| 国产精品视频免费观看| 色五月婷婷中文字幕| 2017天天干| 亚洲国产无码在线| 四虎成人免费视频| 在线观看视频国产| 欧美亚洲国产一区二区三区| 亚洲A片视频| 美日韩A片| 久久中文字幕电影| 亚洲婷婷三级成人网| 九九热九九| 豆花视频成人网站入口免费观看| 久久久久黄色| 国产一级片视频| 精品亚洲无码视频| 精品AV无码| 91丝袜在线| 二区视频在线| 8x8拨牐拨牐拨牐永久免费| 韩无码| 精品AV无码一区二区三区| 亚洲成人视频在线观看| 伊人午夜| 国产91无码精品秘入口在线观看| 全国最大成人网站| 日韩欧美色图| 亚洲无码高清视频在线观看| 伊人91| 影音先锋二区| 成人在线精品| 狠狠撸在线视频| 国产草逼视频| 国产高清无码一区二区三区| 欧美自拍视频在线| 蜜臀久久久99久久久久久久| 久久伊人综合| 大香蕉免费网站| 一级a性色毛片| 欧美日韩中文字幕视频| 亚洲日韩黄色| wwwxx国产| 精品一区二区三区无码| 无码激情18激情视频| 一级片麻豆| 四川妇搡BBBB搡BBBB| 人妻丝袜蕾丝高跟双飞| 亚洲人在线观看| 啊啊嗯嗯视频| 北条麻妃一区二区三区在线| 兔子先生和優奈玩游戲脫衣服,運氣報表優奈輸到脫精光 | 黄色一级在线观看| 热99re69精品8在线播放| 成人毛片100免费观看| a天堂8在线资源| 黄片大全免费看| 国产AV在| 99久久99久久| 91成人电影在线| 欧美三级电影在线观看| 国产在线视频一区| 亚洲成人精品视频| 亚洲午夜无码| 最新超碰| 亚洲一区二区视频| 六月丁香五月婷婷| 成人性生活视频| AV大香蕉| 蝌蚪九色啦403| 十八禁网站在线| 丁香花中文字幕| 色哟哟视频在线观看| 精品国产一级A片黄毛网站| 欧美三级欧美一级| 成人无码影院日韩,成人年…| 色哟哟视频| 多啪啪免费视频| 精品一区二区三区四| 99精品视频16在线免费观看| 刘玥一区二区| 西西人体44www大胆无码| 中国老女人性爱视频| 边吃边摸| 亚洲五月婷| 3D动漫精品啪啪一区二区下载| 女人的天堂av| www黄片| 久草视频在线播放| 人人肏肏人人| 日韩人妻精品一区二区| 五月天激情片| 一卡二卡三卡无码| 国产日韩中文字幕| 国产精品不卡在线| 婷婷狠狠操| 成人小说一区二区三区| 国产黄A| 国产成人精| 爱看福利视频| 国内自拍视频在线观看| 天天日夜夜| 亚洲免费MV| 香蕉av在线播放| 黄色一级片免费在线观看| 91丨熟女丨露脸| 天天草天天草| 亚洲aⅤ| 亚韩AV| 无码一区二区三区四区五区六区| 亚洲成人精品视频| 猫咪AV成人永久网站| 久久久久久久久久久高清毛片一级| 国产乱子伦真实精品| 中国老熟妇| 国产A片录制现场妹子都很多| 国产性爱电影网| 巨乳一区二区三区| 中文字幕在线播放第一页| 乱轮视频| 国产多人搡BBBB槡BBBB| 日韩在线精品视频| 日皮视频免费观看| 亚洲播播| 亚洲精品一区二区三区蜜桃| 国产免费黄色视频网站| 国产精品在线免费| 国产精品不卡在线| 国内成人AV| 日逼www| 男人的天堂在线视频| 國產美女AV操逼網站| 亚洲午夜无码精品专区| 成人黄色视频网| 色老板综合| 无码动漫av| 最新日韩无码| 亚洲综合电影| 日韩欧美一区二区三区不卡| 亚洲性图第一页| 高清无码不卡视频| 国产又粗又长视频| 特级西西44www无码| 久久系列| 麻豆MD传媒MD0071| 天天干天天操天天拍| 性爱小说视频| 最新日韩无码| 俺来了俺去了| 奶头和荫蒂添的好舒服囗交漫画| 无码一区二区三区免费看| 欧美性成人| 影音先锋女人av噜噜色| 午夜操一操| 91人妻人人澡人人爽人人精品| 北条麻妃精品青青久久价格| 欧美深夜福利视频| 另类欧美色图| 中文字幕人妻一区| 人人妻人人澡人人爽| 欧美一级片免费看| 蜜桃视频com.www| 老熟妇一区二区三区啪啪| 欧美国产激情| 99热大香蕉| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 日韩黄色视频在线观看| 国产女人在线视频| 日本爱爱免费| 国产精成人品| 中文字幕88页| 夜夜嗨AⅤ一区二区三区| 欧美日韩国产激情| 色片视频| 91就要爱爱视频| 91福利影院| 一级爱爱爱| 久草热在线| 日韩中文字幕| 熟女视频网| 青青草原网站在线观看| 人妻无码一区二区三区摄像头| 欧美三级视频| 台湾AV在线| 激情五月婷婷色| 99热91| 影音先锋成人资源| 亚洲精品久久久久毛片A级牛奶| 91精彩视频在线观看| 中文字幕不卡在线| 91精品婷婷国产综合久久韩漫| 人与鲁牲交| 亚洲精品成人一二三区| 成人免费黄色| 亚洲AV第一页| 欧美性爱成人| 人人操人人干人人爽| 操逼视频大全| 中文字幕97| 国产黄色视频免费看| 日韩精品三级片| 成人一级精品| 99精品999| 狠狠躁18三区二区一区免费人| 亚洲色五月| 亚洲无码操逼视频| 国产乱子伦精品久久| 国产日韩在线观看视频| 91成人免费视频| 色老板av| 亚洲成人Av| 国产免费久久| 色五月婷婷视频| 熟妇熟女一区二区三区| 91绿帽人妻-ThePorn| 91羞羞网站| 51妺嘿嘿午夜福利视频| 大鸡吧网| 午夜3D动漫AV| 色婷婷香蕉| 99久久婷婷国产综合精品漫| 成人网站免费在线| 精品人妻一区二区三区日产乱码 | 久草网在线观看| 91av久久| 国产精品97| www.91超碰在线| 亚洲成人视频在线免费观看| 国产秘久久一区二区| 国产精品女人精品久久久天天| 18害羞勿进网站国产| 麻豆高清无码| 亚洲天堂在线视频| 国产在线一区二区三区四区| 日韩a电影| 亚洲香蕉av| 免费性片| 99精品视频在线观看免费| 国产操P| 韩日一区二区三区| 亚洲高清无码在线| 蜜桃免费网站| 九九色| 男女操逼免费观看| 国产久久久久久久久| 国产三级黄片| 黄总av| 国产酒店自拍| 九九热精品视频在线观看| 韩国精品一区| 狠狠躁日日躁夜夜躁A片小说免费 色综合久久久无码中文字幕999 | 亚洲日韩av在线| 热久久综合网站| 中文字幕在线不卡视频| 中文字幕在线观看视频www| 日韩成人无码影片| 久久99久久99久久99| 一区二区三区久久久| 中国a一片一级一片| 亚洲欧美日韩电影| 亚洲一区二区黄色电影视频网站| av六月天| 午夜AV无码| 麻豆精品传媒国产剧的特点| 亚洲午夜久久久久久久久| 91无码精品国产| 俺来也俺就去www色情网| 无码日韩av| 午夜理伦| 尤物视频在线观看| 激情国产精品| 色婷婷在线观看视频| 国产人妻一区二区三区欧美毛片| 日韩五码在线| 内射少妇18| 啪啪网站免费看| 狠狠干狠狠色| 国产最新在线| 看肏屄视频| 99国产视频| 亚洲视频福利| 露脸丨91丨九色露脸| 五月丁香婷婷在线观看| 久草免费电影| 日韩综合不卡| 欧美精品成人在线| 亚洲色在线播放| 国产熟妇码视频app| 中文一级片| 国产女人18水真多18精品| a在线观看视频| 国产精品黑人ThePorn| 日韩AV中文字幕在线| 国产主播av| 亚洲成人无码一区| 久久丁香五月婷婷五月天激情视频 | 99视频热| 先锋资源国产| 台湾无码在线| 精品国产久久久久| 中文三级片| 99色亚洲| 亚洲日韩一级片| 亚洲色婷| 免费看黄片的网站| 大香蕉伊人电影| 久草免费电影| 无码人妻精品一区二区三区温州| A视频在线免费观看| 亚洲女人天堂AV| 一本大道DVD中文字幕| 大香蕉操B| 天天摸夜夜操| 日本欧美成人片AAAA| 色婷婷AV一区二区三区软件| 特级西西444www| 肉乳无码A片av| 91网站在线免费观看| 国产一级a毛一级a毛视频在线网站 | 日本色天堂| 无码在线免费观看视频| 日韩欧美群交| 亚洲网站在线观看| 成人AV一区二区三区| 欧美视频一区| 国产精品中文| 中文字幕高清无码免费视频| 亚洲区成人777777精品| 日韩高清色| 玖玖成人电影| 在线日韩一区二区| 成人免费黄色| 地表最强网红八月未央道具大秀| 久久高清无码视频| 日韩中文字幕av在线| 欧美狠狠干| 三级片视频网址| 最新AV在线播放| 97黄片| 五月丁香婷婷开心| 韩日一区| 人人澡人人摸| 成人午夜精品| 国产精品无码中文在线| 暗呦罗莉精品一区二区| 97在线视频免费观看| 日屄免费视频| 欧美亚洲激情| 西欧超碰在线| 尤物视频网址| www.亚洲视频| 国产非洲欧美在线| 一级特黄AA片| 欧美精品三区| 米奇色色| 操逼毛片视频| 日韩欧美综合| 亚洲AV大片| 日本成人A| 操少妇视频| 亚洲色一| 一道本在线视频| 日本一级片| 欧美一在线一综合| 亚洲欧美国产毛片在线| 粉嫩AV在线| 天堂无码在线| 日韩性爱片| 中文字幕在线免费观看| 日韩亚洲欧美在线| 国产毛片18水真多18精品| 久久久久久久免费视频| 国产无码电影在线观看| 黄片免费大全| 山西真实国产乱子伦| 伊人综合久久| 国产精品一线| 91国内产香蕉| 在线人妻| 亚洲a片在线观看| 麻豆18禁| 四虎精品影院| 天堂久久久久| 天天狠天天干| 亚洲有码在线| 爱搞搞搞搞| 无码秘蜜桃一区二区| 亚洲午夜精品久久久| 精国产品一区二区三区A片| 国产黄A片免费网站免费| 国产成人三级视频| 亚洲三级视频| 女人18片毛片60分钟黃菲菲| 国产一区二区三区四区五区六区七区| 特级西西人体WWWww| 波多野结衣一二三区| 精品无码久久久久久久久app | 免费亲子乱婬一级A片| 可以免费看的黄色视频| 精品蜜桃一区内容| 91亚洲国产AⅤ精品一区二区| 精品国产乱码| 成人网站在线看| 思思热视频在线观看| 国产精品免费一区二区三区四区视频 | 中文字幕乱码视频32| 99热偷拍| 黃色一級片黃色一級片尖叫声-百度-百 | 亚洲无码视频在线免费观看 | 亚洲无码一卡| 国产AV无码成人精品毛片| 操B电影| 波多野结衣成人网站| 一区二区三区四区免费| 成年视频网站| 毛片网站大全| 国产久久这里只有精品视频| 香蕉视频一区| 好看的中文字幕av| 北条麻妃无码在线观看| 狠狠干天天干| 18精品爽视频| 日韩精品成人| 乖我硬了让老子cao你小视频| 色五月婷婷婷| 大香蕉久久| 综合色播| 免费看的操逼视频| 少妇高潮av久久久久久| 午夜三级福利| 亚洲精品秘一区二区三区在线观看 | 91九色91蝌蚪91成人| AV电影天堂网| 久久高清免费视频| 婷婷精品在线| 国产1级a毛a毛1级a毛1级| 2025中文在线观看最好看的电影 | 精品人妻无码| 国产欧美日韩一区二区三区| 欧美va亚洲va| 色色加勒比综合| 久久午夜无码鲁丝片| 日韩无码中文字幕视频| 亚洲一区色| 亚洲无码视频观看| 天天插天天狠天天透| 中文字幕日本成人| 成人在线伊人| 草逼片| 亚洲欧美在线免费观看| 亚洲第一黄| aa无码视频| 日韩一二三区| 玖玖av| 操逼视频看看| 99在线观看| 中文字幕不卡视频| 日本一级特黄大片AAAAA级 | 日本中文字幕在线免费观看| 屌国产精品| 天天爽天天爽| 黄色在线免费观看网站| 欧美视频在线观看一区| 中文字幕午夜福利| 日韩人妻无码一区二区| 欧美aaa视频| 先锋AV资源站| 屁屁影院国产第一页| 西西人体WW大胆无码| 江苏妇搡BBB搡BBBB| 真人一级片| 欧美视频色| 中文字幕第六页| 中文字幕永久在线观看| 日韩欧美黄色电影| 一区二区小视频| 人妻在线你懂的| 人成在线免费视频| 91在线无码精品秘入口男同| 日韩欧美大香蕉| 亚洲国产高清在线观看视频| 男人的天堂黄色| 91麻豆福利视频| 中文字幕成人影片| 做爱网站在线观看| 亚洲日韩电影| 人人操免费| 国产三级三级三级| 午夜三级无码| 熟女视频一区二区| 亚洲综合伊人| 四虎黄色网址| 成人三级毛片| 久久中文字幕人妻| 日韩成人无码影片| 偷偷撸在线| 青青草精品视频| 日本久久精品18| 99免费热视频在线| 亚洲天堂在线观看视频网站| 超碰青娱乐| 影音先锋日韩资源| 亚洲精品久久久久avwww潮水| 免费黄色成人| 色老板av| 波多野吉衣视频| 中文字幕h| 亚洲成人网在线观看| 婷婷五月精品| 欧美操逼在线观看| 91黄网站在线观看| 99久久综合九九| 亚洲视频无码| 98国产精品| 美女白嫩嫩大BBB欣赏| 中文字幕色站| 日本国产黄色| 亚洲影院第一页在线观看| 亚洲一区二区三区在线++中国| www操逼| 日韩免费无码视频| 黄色电影网站在线观看| 亚洲天堂大香蕉| 18禁网站在线播放| 3D动漫精品啪啪一区二区| 四川美女网久草| 爱爱视频免费看| 亚洲AV免费看| 日韩欧美国产成人| 秋霞一区二区| 中文字幕精品视频在线| www.黄色大片| 91麻豆精品91久久久久同性| 毛片一区| 亚洲色五月| 99这里有精品视频| 成人区人妻精品一| 亚洲91网站| 99国产一区| 欧一美一婬一伦一区二区三区自慰国 | 免费看黄色AV| 香蕉成人网站在线观看| AV狠狠干| 日逼片| 国产免费自拍| 亚洲日本在线观看| 青青草伊人网| 国产成人性爱| 美女乱伦视频| 中文字幕在线成人| 影音先锋久久久久AV综合网成人| 亚洲一二区| 久草黄色电影在线观看| 一区二区三区视频免费| 人妻无码一区二区三区摄像头| 国产精品1区2区| 无码人妻A片一区二区青苹果| 麻豆AV免费看| 成人网站大香蕉| 亚洲无遮挡| 校园春色成人| 长泽梓黑人初解禁BDD07| 黄片网站免费观看| 俺去俺来也www色视频| 精品91海角乱| 口爆吞精在线观看| 九色PORNY蝌蚪视频| AV小说在线观看| 国产成人午夜精品无码区久久麻豆| 影音先锋在线视频观看| 91三级片在线观看| 国产乱子伦一区二区三| 日本少妇BBw| 人人av在线| 欧美成人精品A片免费一区99| 国产18女人水真多免费看| 奶大丰满一乱一视频一区二区三区在 | 免费在线亚洲| 日本国产黄色| 中文字幕乱码中文乱码图片| 亚洲七区| 国产麻豆免费| 岛国av无码免费| 丁香五月激情中文字幕| 在线成人一区二区| 色眯眯久久爱| 熟女导航| 成人性生活视频| 99国产在线观看| 性无码专区| 亚洲一级Av无码毛片久久精品| 翔田千里珍藏版无码| 人人干人人干| 国产TS丝袜人妖系列视频| 免费精品99| 豆花av| 成人无码动漫A片| 九色PORNY9l原创自拍| 做爱无码| 黄色小视频在线免费观看| www.99精品| 日韩在线成人| 一区二区三区免费看| 免费观看黄色电影| 日逼精品| 成人免费视频国产免费麻豆,| av在线观看中文字幕| 操逼网首页| 99精品视频免费| 91网站免费看| 日本丰满老熟妇乱子伦| 无码狠狠躁久久久久久久91| 福利毛片| 天天干天天色天天日| 亚洲无码视频网站| 国产成人A| 日韩av免费在线观看| 成人视频一区二区三区| 久久精品视频18| 伊人网在线视频观看| 久久99精品视频| 国产777777| 国产三级在线播放| wwwA片| 国产综合自拍| 午夜艹| 亚洲一级免费在线观看| 亚洲国产视频在线观看| 色多多导航| 亚洲欧洲久久| 国产精品毛片VA一区二区三区| 中文字幕在线播放av| 欧美熟妇另类久久久久久不卡 | 污污污污污www网站免费民国| 欧美综合视频在线观看| 精品成人无码一区二区三区| 91二区| 欧美色图在线观看视频| 日韩日批视频| 日韩成人免费在线观看| 国产熟女一区| 无码AV免费观看| 黄片无码免费观看| 日韩V| 黄片网站在线看| 日韩a电影| 高清国产mv在线观看| 欧洲一区二区| 伊人黄| 91av视频| 色av影音先锋无吗一区| 先锋久久资源| 91AV在线观看视频| 日日爱av| 狼友视频免费在线观看| 中文字幕av久久爽爽| 成人AV一区二区三区| 粉嫩av懂色av蜜臀av熟妇| 五月中文字幕| 北条麻妃无码| 无码av在线观看| 天天日夜夜| 网络自拍亚洲激情| 中文字字幕中文字幕乱码| 精品九九九九九九| 欧美日韩亚洲另类| 天天操天天日天天操| 91丨九色丨国产在线| 激情五月婷婷丁香| 三级在线观看视频| 国产欧美精品一区二区| 国产精品h| 欧美成人A片在线观看| S牛牛AV| 亚洲三级精品| 国产小视频在线看| 中文字幕日本人妻| 人妻无码一区二区| 色天天综合网| 精品人妻一区二区| 黄色视频日本| 麻豆MD传媒MD0071| 强开小嫩苞毛片一二三区| www99精品| 国产午夜激情视频| 亚洲AV无码国产综合专区| 久久免费视屏| 91麻豆国产| 尤物视频在线观看| 大香蕉久久| 国产精品毛片一区视频播| 996热re视频精品视频这里| 日本中文字幕网| 在线观看黄视频| 欧美成人黄色A片| 色丁香五月婷婷| 黄片视频免费在线观看| 2025精品精品视频| 特黄A级毛片| 无码专区在线播放| 四川BBB搡BBB爽爽爽电影| 一本道视频在线| 青青草亚洲| 天天干夜夜骑| 精品视频一区二区三区四区| 国产做受精品网站在线观看| 夜夜夜夜骑| 国产操逼无码| 亚洲成人在线网| 蜜桃Av噜噜一区二区三| 一级A片一毛片大全| 中文无码AV| 中文字幕免费看高清| 国产日韩欧美久久| 资源av| 尤物精品在线| 看看AV| 逼特逼在线观看| 白虎高清无码大尺度免费在线观看| 国产精品爽爽久久久| 在线日韩国产| 国产99久久久| 永久免费一区二区| 五月天黄色小说| 国产成人精品视频| 精品亚洲一区二区三区| 久久a视频| 最新国产精品| 成人无码视频在线观看| 成人在线免费观看视频| 国产一区二区三区成人| 精品国产精品三级精品AV网址| 欧美人操逼视频| 2025AV天堂网| 黄色三级在线观看| 成人午夜精品福利免费| 伊人网导航| 黑人精品| 国产成人无码在线| 波多野结衣网址| 国产AV日韩AⅤ亚洲AV中文| 大香蕉色视频| 久久嫩草国产成人一区| 翔田千里av| 国产AV福利| 好逼123| 久久久久久久伊人| 久久艹国产| 免费看无码一级A片放24小时| 亚洲一线播放| 婷婷丁香五月网| 国产18毛片18水多精品| 久草福利在线视频| 91福利网| 91精品久久久久久综合五月天| 久久精品国产亚洲AV成人婷婷| 蜜桃av秘无码一区二区三欧 | 亚洲WWW| 欧美亚洲成人网站| 刘玥一级婬片A片AAA| 成人首页| 国内自拍偷拍| 天天舔| 91香蕉视频免费| 很很干在线视频| 男人的天堂在线视频| 国产精品爽爽久久久| 97干视频| 呦小BBBB小小BBBB| 天天色色| 国产免费性爱视频| 久久人人超碰| 亚洲免费中文字幕| 强伦轩人妻一区二区三区最新版本更新内容| 丁香五月伊人| 国产成人AV在线观看| 五月丁香大香蕉| 亚欧无码| 婷婷视频网| 日韩综合在线视频| 伊人东京热| 人人妻人人澡人人爽久久| 久久永久免费| 在线免费黄| 婷婷久久五月天| 久久久午夜| 看肏屄视频| 成人a毛片| 青青草黄色片| 美女做爱视频网站| 99超碰在线观看| 人人爱人人操| 91无码人妻东京热精品一区| 亚洲v在线观看| 日逼一级片| 免费黄片视频大全| 大香蕉免费在线| 成人免费网站| 大香蕉精品欧美色综合2025 | 91口爆| 欧美黑人操逼视频| www久久99| 国产免费麻豆| C逼| 天堂a√在线8| 黄网在线免费观看| 国产做受精品网站在线观看| 日韩一区二区三区无码| 九哥草逼网| 亚洲高清无码电影| 免费黄网站在线观看| 日本特级片| 午夜性爽视频男人的天堂| 韩国gogogo高清在线完整版 | 天天干天天日天天射| 大香蕉伊人在线观看| 中文字幕免费一区| 丁香五月婷婷啪啪| 婷婷五月色| 91视频网站入口| 三级片网站在线播放| 在线视频亚洲| 国产黄色片在线免费观看| 日韩aaaaaa| 蜜臀久久99精品久久久巴士| 色操逼网| 欧美亚洲日韩中文字幕| 北条麻妃一区二区三区-免费免费高清观看 | 黑人人妻黑人ThePorn| 懂色av粉嫩AV蜜臀AV| 首屈一指视频在线观看| 亚洲一区二区三区在线| www日本高清| 久热精品在线观看视频| 成人网视频| 青青操天天干| A片免费在线|