久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

从零实现的浏览器Web脚本

發布時間:2023/11/3 C# 58 coder
生活随笔 收集整理的這篇文章主要介紹了 从零实现的浏览器Web脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從零實現的瀏覽器Web腳本

在之前我們介紹了從零實現Chrome擴展,而實際上瀏覽器級別的擴展整體架構非常復雜,盡管當前有統一規范但不同瀏覽器的具體實現不盡相同,并且成為開發者并上架Chrome應用商店需要支付5$的注冊費,如果我們只是希望在Web頁面中進行一些輕量級的腳本編寫,使用瀏覽器擴展級別的能力會顯得成本略高,所以在本文我們主要探討瀏覽器Web級別的輕量級腳本實現。

描述

在前邊的從零實現Chrome擴展中,我們使用了TS完成了整個擴展的實現,并且使用Rspack作為打包工具來構建應用,那么雖然我們實現輕量級腳本是完全可以直接使用JS實現的,但是畢竟隨著腳本的能力擴展會變得越來越難以維護,所以同樣的在這里我們依舊使用TS來構建腳本,并且在構建工具上我們可以選擇使用Rollup來打包腳本,本文涉及的相關的實現可以參考個人實現的腳本集合https://github.com/WindrunnerMax/TKScript。

當然瀏覽器是不支持我們直接編寫Web級別腳本的,所以我們需要一個運行腳本的基準環境,當前有很多開源的腳本管理器:

  • GreaseMonkey: 俗稱油猴,最早的用戶腳本管理器,為Firefox提供擴展能力,采用MIT license協議。
  • TamperMonkey: 俗稱篡改猴,最受歡迎的用戶腳本管理器,能夠為當前主流瀏覽器提供擴展能力,開源版本采用GPL-3.0 license協議。
  • ViolentMonkey: 俗稱暴力猴,完全開源的用戶腳本管理器,同樣能夠為當前主流瀏覽器提供擴展能力,采用MIT license協議。
  • ScriptCat: 俗稱腳本貓,完全開源的用戶腳本管理器,同樣能夠為當前主流瀏覽器提供擴展能力,采用 GPL-3.0 license協議。

此外還有很多腳本集合網站,可以用來分享腳本,例如GreasyFork。在之前我們提到過,在研究瀏覽器擴展能力之后,可以發現擴展的權限實在是太高了,那么同樣的腳本管理器實際上也是通過瀏覽器擴展來實現的,選擇可信的瀏覽器擴展也是很重要的,例如在上邊提到的TamperMonkey在早期的版本是開源的,但是在18年之后倉庫就不再繼續更新了,也就是說當前的TamperMonkey實際上是一個閉源的擴展,雖然上架谷歌擴展是會有一定的審核,但是畢竟是閉源的,開源對于類似用戶腳本管理器這類高級用戶工具來說是一個建立信任的信號,所以在選擇管理器時也是需要參考的。

腳本管理器實際上依然是基于瀏覽器擴展來實現的,通過封裝瀏覽器擴展的能力,將部分能力以API的形式暴露出來,并且提供給用戶腳本權限來應用這些API能力,實際上這其中涉及到很多非常有意思的實現,例如腳本中可以訪問的windowunsafeWindow,那么如何實現一個完全隔離的window沙箱環境就值的探索,再比如在Web頁面中是無法跨域訪問資源的,如何實現在Inject Script中跨域訪問資源的CustomEvent通信機制也可以研究一下,以及如何使用createElementNSHTML級別實現Runtime以及Script注入、腳本代碼組裝后//# sourceURL的作用等等,所以如果有興趣的同學可以研究下ScriptCat,這是國內的同學開發的腳本管理器,注釋都是中文會比較容易閱讀。那么本文還是主要關注于應用,我們從最基本的UserScript腳本相關能力,到使用Rollup來構建腳本,再通過實例來探索腳本的實現來展開本文的討論。

UserScript

在最初GreaseMonkey油猴實現腳本管理器時,是以UserScript作為腳本的MetaData也就是元數據塊描述,并且還以GM.開頭提供了諸多高級的API使用,例如可跨域的GM.xmlHttpRequest,實際上相當于實現了一整套規范,而后期開發的腳本管理器大都會遵循或者兼容這套規范,以便復用相關的生態。其實對于開發者來說這也是個麻煩事,因為我們沒有辦法控制用戶安裝的瀏覽器擴展,而我們的腳本如果用到了某一個擴展單獨實現的API,那么就會導致腳本在其他擴展中無法使用,特別是將腳本放在腳本平臺上之后,沒有辦法構建渠道包去分發,所以平時還是盡量使用各大擴展都支持的MetaAPI來開發,避免不必要的麻煩。

此外在很久之前我一直好奇在GreasyFork上是如何實現用戶腳本的安裝的,因為實際上我并沒有在那個安裝腳本的按鈕之后發現什么特殊的事件處理,以及如何檢測到當前已經安裝腳本管理器并且實現通信的,之后簡單研究了下發現實際上只要用戶腳本是以.user.js結尾的文件,就會自動觸發腳本管理器的腳本安裝功能,并且能夠自動記錄腳本安裝來源,以便在打開瀏覽器時檢查腳本更新,同樣的后期這些腳本管理器依然會遵循這套規范,既然我們了解到了腳本的安裝原理,在后邊實例一節中我會介紹下我個人進行腳本分發的最佳實踐。那么在本節,我們主要介紹常見的Meta以及API的使用,一個腳本的整體概覽可以參考https://github.com/WindrunnerMax/TKScript/blob/gh-pages/copy-currency.user.js

Meta

元數據是以固定的格式存在的,主要目的是便于腳本管理器能夠解析相關屬性比如名字和匹配的站點等,每一條屬性必須使用雙斜杠//開頭,不得使用塊注釋/* */,與此同時,所有的腳本元數據必須放置于// ==UserScript==// ==/UserScript==之間才會被認定為有效的元數據,即必須按照以下格式填寫:

// ==UserScript==
// @屬性名 屬性值
// ==/UserScript==

常用的屬性如下所示:

  • @name: 腳本的名字,在@namespace級別的腳本的唯一標識符,可以設置語言,例如// @name:zh-CN 文本選中復制(通用)。
  • @author: 腳本的作者,例如// @author Czy。
  • @license: 腳本的許可證,例如// @license MIT License。
  • @description: 腳本功能的描述,在安裝腳本時會在管理對話框中呈現給用戶,同樣可以設置語言,例如// @description:zh-CN 通用版本的網站復制能力支持。
  • @namespace: 腳本的命名空間,用于區分腳本的唯一標識符,例如// @namespace https://github.com/WindrunnerMax/TKScript。
  • @version: 腳本的版本號,腳本管理器啟動時通常會對比改字段決定是否下載更新,例如// @version 1.1.2。
  • @updateURL: 檢查更新地址,在檢查更新時會首先訪問該地址,來對比@version字段來決定是否更新,該地址應只包含元數據而不包含腳本內容。
  • @downloadURL: 腳本更新地址(https協議),在檢查@updateURL后需要更新時,則會請求改地址獲取最新的腳本,若未指定該字段則使用安裝腳本地址。
  • @include: 可以使用*表示任意字符,支持標準正則表達式對象,腳本中可以有任意數量的@include規則,例如// @include http://www.example.org/*.bar
  • @exclude: 可以使用*表示任意字符,支持標準正則表達式對象,同樣支持任意數量的規則且@exclude的匹配權限比@include要高,例如// @exclude /^https?://www\.example\.com/.*$/。
  • @match: 更加嚴格的匹配模式,根據Chrome的Match Patterns規則來匹配,例如// @match *://*.google.com/foo*bar
  • @icon: 腳本管理界面顯示的圖標,幾乎任何圖像都可以使用,但32x32像素大小是最合適的資源大小。
  • @resource: 在安裝腳本時,每個@resource都會下載一次,并與腳本一起存儲在用戶的硬盤上,這些資源可以分別通過GM_getResourceTextGM_getResourceURL訪問,例如// @resource name https://xxx/xxx.png。
  • @require: 腳本所依賴的其他腳本,通常為可以提供全局對象的庫,例如引用jQuery則使用// @require https://cdn.staticfile.org/jquery/3.7.1/jquery.min.js。
  • @run-at: 用于指定腳本執行的時機,可用的參數只能為document-start頁面加載前、document-end頁面加載后資源加載前、document-idle頁面與資源加載后,默認值為document-end
  • @noframes: 當存在時,該命令會限制腳本的執行。該腳本將僅在*文檔中運行,而不會在嵌套框架中運行,不需要任何參數,默認情況下此功能處于關閉狀態即允許腳本在iframe中運行。
  • @grant: 腳本所需要的權限,例如unsafeWindow,GM.setValue,GM.xmlHttpRequest等,如果沒有指定@grant則默認為none,即不需要任何權限。

API

API是腳本管理器提供用來增強腳本功能的對象,通過這些腳本我們可以實現針對于Web頁面更加高級的能力,例如跨域請求、修改頁面布局、數據存儲、通知能力、剪貼板等等,甚至于在Beta版的TamperMonkey中,還有著允許用戶腳本讀寫HTTP OnlyCookie的能力。同樣的,使用API也有著固定的格式,在使用之前必須要在Meta中聲明相關的權限,以便腳本將相關函數動態注入,否則會導致腳本無法正常運行,此外還需要注意的是相關函數的命名可能不同,在使用時還需要參考相關文檔。

// ==UserScript==
// @grant unsafeWindow
// ==/UserScript==
  • GM.info: 獲取當前腳本的元數據以及腳本管理器的相關信息。
  • GM.setValue(name: string, value: string | number | boolean): Promise<void>: 用于寫入數據并儲存,數據通常會存儲在腳本管理器本體維護的IndexDB中。
  • GM.getValue(name: string, default?: T): : Promise<string | number | boolean | T | undefined>: 用于獲取腳本之前使用GM.setValue賦值儲存的數據。
  • GM.deleteValue(name: string): Promise<void>: 用于刪除之前使用GM.setValue賦值儲存的數據。
  • GM.getResourceUrl(name: string): Promise<string>: 用于獲取之前使用@resource聲明的資源地址。
  • GM.notification(text: string, title?: string, image?: string, onclick?: () => void): Promise<void>: 用于調用系統級能力的窗口通知。
  • GM.openInTab(url: string, open_in_background?: boolean ): 用于在新選項卡中打開指定的URL。
  • GM.registerMenuCommand(name: string, onclick: () => void, accessKey?: string): void: 用于在腳本管理器的菜單中添加一個菜單項。
  • GM.setClipboard(text: string): void: 用于將指定的文本數據寫入剪貼板。
  • GM.xmlHttpRequest(options: { method?: string, url: string, headers?: Record<string, string>, onload?: (response: { status: number; responseText: string , ... }) => void , ... }): 用于與標準XMLHttpRequest對象類似的發起請求的功能,但允許這些請求跨越同源策略。
  • unsafeWindow: 用于訪問頁面原始的window對象,在腳本中直接訪問的window對象是經過腳本管理器封裝過的沙箱環境。

單看這些常用的API其實并不好玩,特別是其中很多能力我們也可以直接換種思路借助腳本來實現,當然有一些例如unsafeWindowGM.xmlHttpRequest我們必須要借助腳本管理器的API來完成。那么在這里我們還可以聊一下腳本管理器中非常有意思的實現方案,首先是unsafeWindow這個非常特殊的API,試想一下如果我們完全信任用戶當前頁面的window,那么我們可能會直接將API掛載到window對象上,聽起來似乎沒有什么問題,但是設想這么一個場景,假如用戶訪問了一個惡意頁面,然后這個網頁又恰好被類似https://*/*規則匹配到了,那么這個頁面就可以獲得訪問我們的腳本管理器的相關API,這相當于是瀏覽器擴展級別的權限,例如直接獲取用戶磁盤中的文件內容,并且可以直接將內容跨域發送到惡意服務器,這樣的話我們的腳本管理器就會成為一個安全隱患,再比如當前頁面已經被XSS攻擊了,攻擊者便可以借助腳本管理器GM.cookie.get來獲取HTTP OnlyCookie,并且即使不開啟CORS也可以輕松將請求發送到服務端。那么顯然我們本身是準備使用腳本管理器來Hook瀏覽器的Web頁面,此時反而卻被越權訪問了更高級的函數,這顯然是不合理的,所以GreaseMonkey實現了XPCNativeWrappers機制,也可以理解為針對于window對象的沙箱環境。

那么我們在隔離的環境中,可以得到window對象是一個隔離的安全window環境,而unsafeWindow就是用戶頁面中的window對象。曾經我很長一段時間都認為這些插件中可以訪問的window對象實際上是瀏覽器拓展的Content Scripts提供的window對象,而unsafeWindow是用戶頁面中的window,以至于我用了比較長的時間在探尋如何直接在瀏覽器拓展中的Content Scripts直接獲取用戶頁面的window對象,當然最終還是以失敗告終,這其中比較有意思的是一個逃逸瀏覽器拓展的實現,因為在Content ScriptsInject Scripts是共用DOM的,所以可以通過DOM來實現逃逸,當然這個方案早已失效。

var unsafeWindow;
(function() {
    var div = document.createElement("div");
    div.setAttribute("onclick", "return window");
    unsafeWindow = div.onclick();
})();

此外在FireFox中還提供了一個wrappedJSObject來幫助我們從Content Scripts中訪問頁面的的window對象,但是這個特性也有可能因為不安全在未來的版本中被移除。那么為什么現在我們可以知道其實際上是同一個瀏覽器環境呢,除了看源碼之外我們也可以通過以下的代碼來驗證腳本在瀏覽器的效果,可以看出我們對于window的修改實際上是會同步到unsafeWindow上,證明實際上是同一個引用。

unsafeWindow.name = "111111";
console.log(window === unsafeWindow); // false
console.log(window); // Proxy?{Symbol(Symbol.toStringTag): 'Window'}
console.log(window.onblur); // null
unsafeWindow.onblur = () => 111;
console.log(unsafeWindow); // Window?{ ... }
console.log(unsafeWindow.name, window.name); // 111111 111111
console.log(window.onblur === unsafeWindow.onblur); // true
const win = new Function("return this")();
console.log(win === unsafeWindow); // true

實際上在@grant none的情況下,腳本管理器會認為當前的環境是安全的,同樣也不存在越權訪問的問題了,所以此時訪問的window就是頁面原本的window對象。此外,如果觀察仔細的話,我們可以看到上邊的驗證代碼最后兩行我們突破了這些擴展的沙盒限制,從而可以在未@grant unsafeWindow情況下能夠直接訪問unsafeWindow,當然這并不是什么大問題,因為腳本管理器本身也是提供unsafeWindow訪問的,而且如果在頁面未啟用unsafe-evalCSP情況下這個例子就失效了。只不過我們也可以想一下其他的方案,是不是直接禁用Function函數以及eval的執行就可以了,但是很明顯即使我們直接禁用了Function對象的訪問,也同樣可以通過構造函數的方式即(function(){}).constructor來訪問Function對象,所以針對于window沙箱環境也是需要不斷進行攻防的,例如小程序不允許使用Functioneval、setTimeout、setInterval來動態執行代碼,那么社區就開始有了手寫解釋器的實現,對于我們這個場景來說,我們甚至可以直接使用iframe創建一個about:blankwindow對象作為隔離環境。

那么我們緊接著可以簡單地討論下如何實現沙箱環境隔離,其實在上邊的例子中也可以看到直接打印window輸出的是一個Proxy對象,那么在這里我們同樣使用Proxy來實現簡單的沙箱環境,我們需要實現的是對于window對象的代理,在這里我們簡單一些,我們希望的是所有的操作都在新的對象上,不會操作原本的對象,在取值的時候可以做到首先從我們新的對象取,取不到再去window對象上取,寫值的時候只會在我們新的對象上操作,在這里我們還用到了with操作符,主要是為了將代碼的作用域設置到一個特定的對象中,在這里就是我們創建的的context,在最終結果中我們可以看到我們對于window對象的讀操作是正確的,并且寫操作都只作用在沙箱環境中。

const context = Object.create(null);
const global = window;
const proxy = new Proxy(context, {
    // `Proxy`使用`in`操作符號判斷是否存在屬性
    has: () => true,
    // 寫入屬性作用到`context`上
    set: (target, prop, value) => {
        target[prop] = value;
        return true;
    },
    // 特判特殊屬性與方法 讀取屬性依次讀`context`、`window`
    get: (target, prop) => {
        switch (prop) {
            // 重寫特殊屬性指向
            case "globalThis":
            case "window":
            case "parent":
            case "self":
                return proxy;
            default:
                if (prop in target) {
                    return target[prop];
                }
                const value = global[prop];
                // `alert`、`setTimeout`等方法作用域必須在`window`下
                if (typeof value === "function" && !value.prototype) {
                    return value.bind(global);
                }
                return value;
        }
    },
});

window.name = "111";
with (proxy) {
    console.log(window.name); // 111
    window.name = "222";
    console.log(name); // 222
    console.log(window.name); // 222
}
console.log(window.name); // 111
console.log(context); // { name: '222' }

那么現在到目前為止我們使用Proxy實現了window對象隔離的沙箱環境,總結起來我們的目標是實現一個干凈的window沙箱環境,也就是說我們希望網站本身執行的任何不會影響到我們的window對象,比如網站本體在window上掛載了$$對象,我們本身不希望其能直接在開發者的腳本中訪問到這個對象,我們的沙箱環境是完全隔離的,而用戶腳本管理器的目標則是不同的,比如用戶需要在window上掛載事件,那么我們就應該將這個事件處理函數掛載到原本的window對象上,那么我們就需要區分讀或者寫的屬性是原本window上的還是Web頁面新寫入的屬性,顯然如果想解決這個問題就要在用戶腳本執行之前將原本window對象上的key記錄副本,相當于以白名單的形式操作沙箱。由此引出了我們要討論的下一個問題,如何在document-start即頁面加載之前執行腳本。

實際上document-start是用戶腳本管理器中非常重要的實現,如果能夠保證腳本是最先執行的,那么我們幾乎可以做到在語言層面上的任何事情,例如修改window對象、Hook函數定義、修改原型鏈、阻止事件等等等等。當然其本身的能力也是源自于瀏覽器拓展,而如何將瀏覽器擴展的這個能力暴露給Web頁面就是需要考量的問題了。首先我們大概率會寫過動態/異步加載JS腳本的實現,類似于下面這種方式:

const loadScriptAsync = (url: string) => {
    return new Promise<Event>((resolve, reject) => {
        const script = document.createElement("script");
        script.src = url;
        script.async = true;
        script.onload = e => {
            script.remove();
            resolve(e);
        };
        script.onerror = e => {
            script.remove();
            reject(e);
        };
        document.body.appendChild(script);
    });
};

那么現在就有一個明顯的問題,我們如果在body標簽構建完成也就是大概在DOMContentLoaded時機再加載腳本肯定是達不到document-start的目標的,甚至于在head標簽完成之后處理也不行,很多網站都會在head內編寫部分JS資源,在這里加載同樣時機已經不合適了。那么對于整個頁面來說,最先加載的必定是html這個標簽,那么很明顯我們只要將腳本在html標簽級別插入就好了,配合瀏覽器擴展中backgroundchrome.tabs.executeScript動態執行代碼以及content.js"run_at": "document_start"建立消息通信確認注入的tab,這個方法是不是看起來很簡單,但就是這么簡單的問題讓我思索了很久是如何做到的。此外這個方案目前在擴展V2中是可以行的,在V3中移除了chrome.tabs.executeScript,替換為了chrome.scripting.executeScript,當前的話使用這個API可以完成框架的注入,但是做不到用戶腳本的注入,因為無法動態執行代碼。

(function () {
    const script = document.createElementNS("http://www.w3.org/1999/xhtml", "script");
    script.setAttribute("type", "text/javascript");
    script.innerText = "console.log(111);";
    script.className = "injected-js";
    document.documentElement.appendChild(script);
    script.remove();
})();

此外我們可能納悶,為什么腳本管理器框架和用戶腳本都是采用這種方式注入的,而在瀏覽器控制臺的Sources控制面板下只能看到一個userscript.html?name=xxxxxx.user.js卻看不到腳本管理器的代碼注入,實際上這是因為腳本管理器會在用戶腳本的最后部分注入一個類似于//# sourceURL=chrome.runtime.getURL(xxx.user.js)的注釋,其中這個sourceURL會將注釋中指定的URL作為腳本的源URL,并在Sources面板中以該URL標識和顯示該腳本,這對于在調試和追蹤代碼時非常有用,特別是在加載動態生成的或內聯腳本時。

window["xxxxxxxxxxxxx"] = function (context, GM_info) {
  with (context)
    return (() => {
      // ==UserScript==
      // @name       TEST
      // @description       TEST
      // @version    1.0.0
      // @match      http://*/*
      // @match      https://*/*
      // ==/UserScript==

      console.log(window);

      //# sourceURL=chrome-extension://xxxxxx/DEBUG.user.js
    })();
};

還記得我們最初的問題嗎,即使我們完成了沙箱環境的構建,但是如何將這個對象傳遞給用戶腳本,我們不能將這些變量暴露給網站本身,但是又需要將相關的變量傳遞給腳本,而腳本本身就是運行在用戶頁面上的,否則我們沒有辦法訪問用戶頁面的window對象,所以接下來我們就來討論如何保證我們的高級方法安全地傳遞到用戶腳本的問題。實際上在上邊的source-map我們也可以明顯地看出來,我們可以直接借助閉包以及with訪問變量即可,并且在這里還需要注意this的問題,所以在調用該函數的時候通過如下方式調用即可將當前作用域的變量作為傳遞給腳本執行。

script.apply(proxyContent, [ proxyContent, GM_info ]);

我們都知道瀏覽器會有跨域的限制,但是為什么我們的腳本可以通過GM.xmlHttpRequest來實現跨域接口的訪問,而且我們之前也提到了腳本是運行在用戶頁面也就是作為Inject Script執行的,所以是會受到跨域訪問的限制的。那么解決這個問題的方式也比較簡單,很明顯在這里發起的通信并不是直接從頁面的window發起的,而是從瀏覽器擴展發出去的,所以在這里我們就需要討論如何做到在用戶頁面與瀏覽器擴展之間進行通信的問題。在Content Script中的DOM和事件流是與Inject Script共享的,那么實際上我們就可以有兩種方式實現通信,首先我們常用的方法是window.addEventListener + window.postMessage,只不過這種方式很明顯的一個問題是在Web頁面中也可以收到我們的消息,即使我們可以生成一些隨機的token來驗證消息的來源,但是這個方式畢竟能夠非常簡單地被頁面本身截獲不夠安全,所以在這里通常是用的另一種方式,即document.addEventListener + document.dispatchEvent + CustomEvent自定義事件的方式,在這里我們需要注意的是事件名要隨機,通過在注入框架時于background生成唯一的隨機事件名,之后在Content ScriptInject Script都使用該事件名通信,就可以防止用戶截獲方法調用時產生的消息了。

// Content Script
document.addEventListener("xxxxxxxxxxxxx" + "content", e => {
    console.log("From Inject Script", e.detail);
});

// Inject Script
document.addEventListener("xxxxxxxxxxxxx" + "inject", e => {
    console.log("From Content Script", e.detail);
});

// Inject Script
document.dispatchEvent(
    new CustomEvent("xxxxxxxxxxxxx" + "content", {
        detail: { message: "call api" },
    }),
);

// Content Script
document.dispatchEvent(
    new CustomEvent("xxxxxxxxxxxxx" + "inject", {
        detail: { message: "return value" },
    }),
);

腳本構建

在構建Chrome擴展的時候我們是使用Rspack來完成的,這次我們換個構建工具使用Rollup來打包,主要還是Rspack更適合打包整體的Web應用,而Rollup更適合打包工具類庫,我們的Web腳本是單文件的腳本,相對來說更適合使用Rollup來打包,當然如果想使用Rspack來體驗Rust構建工具的打包速度也是沒問題的,甚至也可以直接使用SWC來完成打包,實際上在這里我并沒有使用Babel而是使用ESBuild來構建的腳本,速度也是非常不錯的。

此外,之前我們也提到過腳本管理器的API雖然都對GreaseMonkey兼容,但實際上各個腳本管理器會出現特有的API,這也是比較正常的現象畢竟是不同的腳本管理器,完全實現相同的功能是意義不大的,至于不同瀏覽器的差異還不太一樣,瀏覽器之間的API差異是需要運行時判斷的。那么如果我們需要全平臺支持的話就需要實現渠道包,這個概念在Android開發中是非常常見的,那么每個包都由開發者手寫顯然是不現實的,使用現代化的構建工具除了方便維護之外,對于渠道包的支持也更加方便,利用環境變量與TreeShaking可以輕松地實現渠道包的構建,再配合腳本管理器以及腳本網站的同步功能,就可以實現分發不同渠道的能力。

Rollup

這一部分比較類似于各種SDK的打包,假設在這里我們有多個腳本需要打包,而我們的目標是將每個工程目錄打包成單獨的包,Rollup提供了這種同時打包多個輸入輸出能力,我們可以直接通過rollup.config.js配置一個數組,通過input來指定入口文件,通過output來指定輸出文件,通過plugins來指定插件即可,我們輸出的包一般需要使用iife立執行函數也就是能夠自動執行的腳本,適合作為script標簽這樣的輸出格式。

[
  {
    input: "./packages/copy/src/index.ts",
    output: {
      file: "./dist/copy.user.js",
      format: "iife",
      name: "CopyModule",
    },
    plugins: [ /* ... */ ],
  },
  // ...
];

如果需要使用@updateURL來檢查更新的話,我們還需要單獨打包一個meta文件,打包meta文件與上邊同理,只需要提供一個空白的blank.js作為input,之后將meta數據注入就可以了,這里需要注意的一點是這里的format要設置成es,因為我們要輸出的腳本不能帶有自執行函數的(function () {})();包裹。

[
  {
    input: "./meta/blank.js",
    output: {
      file: "./dist/meta/copy.meta.js",
      format: "es",
      name: "CopyMeta",
    },
    plugins: [{ /* ... */}],
  },
  // ...
];

前邊我們也提到了渠道包的問題,那么如果想打包渠道包的話主要有以下幾個需要注意的地方:首先是在命令執行的時候,我們要設置好環境變量,例如在這里我設置的環境變量是process.env.CHANNEL;其次在打包工具中,我們需要在打包的時候將定義的整個環境變量替換掉,實際上這里也是個非常有意思的事情,雖然我們認為process是個變量,但是在打包的時候我們是當字符串處理的,利用@rollup/plugin-replaceprocess.env.CHANNEL字符串替換成執行命令的時候設置的環境變量;之后在代碼中我們需要定義環境變量的使用,在這里特別要注意的是要寫成直接表達式而不是函數的形式,因為如果寫成了函數我們就無法觸發TreeShaking,TreeShaking是靜態檢測的方式,我們需要在代碼中明確指明這個表達式的Boolean值;最后再通過環境變量來設置文件的輸出,最終將所有的文件打包出來即可。

// package.json scripts
// "build:special": "cross-env CHANNEL=SPECIAL rollup -c"

// index.ts
const isSpecialEnv = process.env.CHANNEL === "SPECIAL";
if (isSpecialEnv) {
    console.log("IS IN SPECIAL ENV");
}

// @rollup/plugin-replace
replace({
    "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
    "process.env.CHANNEL": JSON.stringify(process.env.CHANNEL),
    "preventAssignment": true,
})

// rollup.config.js
if(process.env.CHANNEL === "SPECIAL"){
    config.output.file = "./dist/copy.special.user.js";
}

此外,我們不能使用rollup-plugin-terser等模塊去壓縮打包的產物,特別是要分發到GreasyFork等平臺中,因為本身腳本的權限也可以說是非常高的,所以配合代碼審查是非常有必要的。同樣的也因為類似的原因,類似于jQuery這種包我們是不能夠直接打包到項目中的,一般是需要作為external配合@require外部引入的,類似于GreasyFork也會采取白名單機制審查外部引入的包。大部分情況下我們需要使用document-start去前置執行代碼,但是在此時head標簽是沒有完成的,所以在這里還需要特別關注下CSS注入的時機,如果腳本是在document-start執行的話通常就需要自行注入CSS而不能直接使用rollup-plugin-postcss的默認注入能力。那么到這里實際上Rollup打包這部分并沒有特別多需要注意的能力,基本就是我們普通的前端工程化項目,完整的配置可以參考https://github.com/WindrunnerMax/TKScript/blob/master/rollup.config.js。

// `Plugins Config` 
const buildConfig = {
    postcss: {
        minimize: true,
        extensions: [".css"],
    },
    esbuild: {
        exclude: [/node_modules/],
        sourceMap: false,
        target: "es2015",
        minify: false,
        charset: "utf8",
        tsconfig: path.resolve(__dirname, "tsconfig.json"),
    },
};

// `Script Config` 
const scriptConfig = [
    {
        name: "Copy",
        meta: {
            input: "./meta/blank.js",
            output: "./dist/meta/copy.meta.js",
            metaFile: "./packages/copy/meta.json",
        },
        script: {
            input: "./packages/copy/src/index.ts",
            output: "./dist/copy.user.js",
            injectCss: false,
        },
    },
    // ...
];


export default [
    // `Meta`
    ...scriptConfig.map(item => ({
        input: item.meta.input,
        output: {
            file: item.meta.output,
            format: "es",
            name: item.name + "Meta",
        },
        plugins: [metablock({ file: item.meta.metaFile })],
    })),
    // `Script`
    ...scriptConfig.map(item => ({
        input: item.script.input,
        output: {
            file: item.script.output,
            format: "iife",
            name: item.name + "Module",
        },
        plugins: [
            postcss({ ...buildConfig.postcss, inject: item.script.injectCss }),
            esbuild(buildConfig.esbuild),
            // terser({ format: { comments: true } }),
            metablock({ file: item.meta.metaFile }),
        ],
    })),
];

Meta

在上邊雖然我們完成了主體包的構建,但是似乎我們遺漏了一個大問題,也就是腳本管理器腳本描述Meta的生成,幸運的是在這里有Rollup的插件可以讓我們直接調用,當然實現類似于這種插件的能力本身并不復雜,首先是需要準備一個meta.json的文件,在其中使用json的形式將各種配置描述出來,之后便可以通過遍歷的方式生成字符串,在Rollup的鉤子函數中講字符串注入到輸出的文件中即可。當然這個包還做了很多事情,例如對于字段格式的檢查、輸出內容的美化等等。

{
    "name": {
        "default": "??????文本選中復制(通用)??????",
        "en": "Text Copy Universal",
        "zh-CN": "??????文本選中復制(通用)??????"
      },
    "namespace": "https://github.com/WindrunnerMax/TKScript",
    "version": "1.1.2",
    "description": {
        "default": "文本選中復制通用版本,適用于大多數網站",
        "en": "Text copy general version, suitable for most websites.",
        "zh-CN": "文本選中復制通用版本,適用于大多數網站"
      },
    "author": "Czy",
    "match": [
        "http://*/*",
        "https://*/*"
    ],
    "supportURL": "https://github.com/WindrunnerMax/TKScript/issues",
    "license": "GPL License",
    "installURL": "https://github.com/WindrunnerMax/TKScript",
    "run-at": "document-end",
    "grant": [
        "GM_registerMenuCommand",
        "GM_unregisterMenuCommand",
        "GM_notification"
    ]
}

實例

那么在這部分我們實現用戶腳本的實例,雖然我們平時可能Ctrl C+V代碼比較多,但是Ctrl C+V也不是僅僅用來搞代碼的,平時抄作業抄報告也是很需要用到的,尤其是當時我還是學生黨的時候,要是不能復制粘貼純自己寫報告那簡直要了命。那么問題來了,總有一些網站不想讓我們愉快地進行復制粘貼,所以在這里我們來實現解除瀏覽器復制限制的通用方案,具體代碼可以參考https://github.com/WindrunnerMax/TKScript文本選中復制-通用這部分。

CSS

某些網站會會通過CSS來禁用復制粘貼,具體表現為文字無法直接選中,特別是很多文庫類的網站,例如隨便在百度上搜索一下實習報告,那么很多搜出來的網站都是無法復制的,當然我們可以直接使用F12看到這部分文本,但是當他是這種嵌套層次很深并且分開展示的數據使用F12復制起來還是比較麻煩的,當然可以直接使用$0.innerText來獲取文本,但是畢竟過于麻煩,不如讓我們來看看CSS是如何禁用的文本選中能力。

那么平時如果我們寫過一些文本類操作的能力,比如富文本Void塊元素的時候,很容易就可以了解到use-select這個CSS屬性,user-select屬性用于控制用戶是否可以選擇文本,這不會對作為瀏覽器用戶界面的一部分的內容加載產生任何影響,除非是在文本框中。

user-select: none; /* 元素及其子元素的文本不可選中 */
user-select: auto; /* 具體取值取決于一系列條件 */
user-select: text; /* 元素及其子元素的文本內容可選中 */
user-select: contain; /* 元素的子元素的文本可選中 但元素本身的文本不可選中 */
user-select: all; /* 元素及其子元素的文本內容可選中 */

那么我們在這些網站中檢索一下,就可以很明顯的看到user-select: none;,那么如果想解除這個限制,我們可以很輕松地想到CSS的優先級,利用優先級來強行覆蓋所有屬性的值即可,這也是比較通用的實現方案,可以輕松適配絕大多數利用這種方式禁止復制的頁面。

const style = document.createElement("style"); 
style.type = "text/css";
style.innerText = "*{user-select: auto !important; -webkit-user-select: auto !important;}"; 
document.head.appendChild(style);

Event

在大部分時候網站都不僅僅是使用CSS來禁止用戶復制行為的,特別是使用Canvas繪制的內容,當然這種方式不在本文討論的范圍,在這里我們要討論利用事件來限制用戶復制的方式,那么能夠影響到用戶復制行為的事件主要有onCopy、onSelectStart事件。onCopy事件很明顯,我們在觸發復制例如使用Ctrl + C或者右鍵復制的時候就會觸發,在這里我們只要將其截獲就可以做到阻止復制了,同樣的onSelectStart事件也是,只要阻止其默認行為就可以阻止用戶的文本選中,自然也就無法復制了。在這里為了簡單直接使用DOM0事件,如果在控制輸入這段代碼就可以發現無法正常復制了。

document.oncopy = event => event.preventDefault();
document.onselectstart = event => event.preventDefault();

在研究如何處理這些事件的行為之前,我們先來看一下getEventListeners方法,Chrome瀏覽器提供的getEventListeners方法來獲取所有的事件監聽,但是這畢竟是在控制臺中才能使用的函數,不具有通用性,只是方便我們調試用。

console.log(getEventListeners(document));
// {
//     click: Array(4), 
//     DOMContentLoaded: Array(3),
//     // ...
// }

那么既然不具有通用性,我們為什么要聊這個方法呢,這其中涉及一個問題,對于這些事件監聽,如果我們想解除這些事件處理函數,對于DOM0級的事件而言,我們只需要將屬性設置為null即可,但是對于DOM2級的事件而言,我們需要使用removeEventListener來移除事件處理函數,那么問題來了,使用removeEventListener函數我們必須要獲取當時addEventListener時的函數引用,但是我們并沒有保存這個引用,那么我們如何獲取這個引用呢,這就是我們討論的getEventListeners方法的作用了,我們可以通過這個方法獲取到所有的事件監聽,之后再通過removeEventListener來移除事件處理函數即可,當然在這里我們只能進行事件判定的調試用,并不能實現一個通用的方案。

const listeners = getEventListeners(document);
Object.keys(listeners).forEach(key => {
    console.log(key);
    listeners[key].forEach(item => {
        document.removeEventListener(item.type, item.listener);
    });
});

那么我們是不是可以換個思路,非得移除事件監聽是比較鉆牛角尖了,俗話說得好,最高端的食物往往只需要最簡單的烹飪方式,既然移除不了,我們就不讓他執行就完事了,既然不想讓他執行,那就很自然的聯想到了JS的事件流模型,那就給他阻止冒泡唄。

document.body.addEventListener("copy", e => e.stopPropagation()); 
document.body.addEventListener("selectstart", e => e.stopPropagation());

看似這個方式是沒有問題的,那么假如此時Web頁面本身監聽的事件是在body上的話,那么很明顯在document上去阻止冒泡就已經太晚了,并不能達到效果,所以這就很尷尬,那說明這個方案不夠通用。那既然冒泡不行,我們直接在捕獲階段給他干掉就ok了,并且配合上腳本管理器的document-start來保證我們的事件捕獲是最先執行的,這樣不光能夠解決這類DOM0事件的問題,對于DOM2級的事件也同樣有效果。

document.body.addEventListener("copy", e => e.stopPropagation(), true); 
document.body.addEventListener("selectstart", e => e.stopPropagation(), true);

這個方案已經是一個比較通用的復制方案了,我們可以解決大多數網站的限制,但通過直接在捕獲階段攔截事件也是可能有一定的副作用的,例如我們在捕獲階段就阻止了鍵盤的事件,然后在編輯語雀的文檔的時候就會出現問題,因為語雀的文檔也跟飛書類似,都是按行處理文本,然后猜測他是阻止了contenteditable的默認行為,然后編輯器完全接管了鍵盤的事件,所以會導致其無法換行和處理快捷啟動菜單。同理,如果直接阻止了onCopy的冒泡,就可能導致編輯器復制采用了默認行為,而通常編輯器會對于復制文本的格式進行一些處理,所以在有編輯功能的時候還是要慎重,完全作為展覽端倒是就問題不大了,整體來說是收益更大。

前一段時間我發現了另一種非常有意思的事情,onFocusonBlur事件也可以做到限制用戶文本選中,隨便找個頁面然后將下邊的代碼在控制臺執行,我們可以驚奇地發現,我們無法正常選中文本了。

const button = document.createElement("button");
button.onblur = () => button.focus();
button.textContent = "BUTTON";
document.body.appendChild(button);
button.focus();

那么實際上這里的原理也很簡單,通常在HTMLInputElementHTMLSelectElement、HTMLTextAreaElementHTMLAnchorElement、HTMLButtonElement等元素會有焦點這個概念,而文本的選中也有焦點這個行為,那么既然焦點不能夠同時聚焦在一起,我們就直接強行將焦點聚焦在其他的地方,比如上邊的例子就是將焦點強行聚焦在了按鈕上,這樣因為文本內容無法獲取焦點,就無法正常選中了。

那么我們同樣可以使用捕獲階段阻止事件執行的方式解決這個問題,分別將onFocus、onBlur事件處理掉即可,只不過這種方式可能會導致頁面的焦點控制出現一些問題,所以在這里我們還有另一種方式,通過在document-start執行MutationObserver,在發現類似的DOM節點的時候直接將其移出,讓其無法插入到DOM樹中自然也就不會有相關問題了,只不過這就不是一個通用的解決方案,通常需要case by case地處理才可以。

const handler = mutationsList => {
    for (const mutation of mutationsList) {
        const addedNodes = mutation.addedNodes;
        for (let i = 0; i < addedNodes.length; i++) {
            const target = addedNodes[i];
            if (target.nodeType != 1) return void 0;
            if (
                target instanceof HTMLButtonElement &&
                target.textContent === "BUTTON"
            ) {
                target.remove();
            }
        }
    }
};
const observer = new MutationObserver(handler);
observer.observe(document, { childList: true, subtree: true });

腳本分發

那么基于上述方式我們完成了腳本的編寫與打包,在這里也分享一個腳本分發的最佳實踐,GreasyFork等腳本網站通常會有源代碼同步的能力,我們可以直接填入一個腳本鏈接就可以自動同步腳本更新,就不需要我們到處填寫了,那么這里還有一個問題,這個腳本鏈接應該從哪里來呢,那么同樣我們可以借助GitHubGitPages來生成腳本鏈接,并且GitHub還有GitAction可以幫助我們自動構建腳本。

那么整個流程就是這樣的,我們首先在GitHub配置好GitAction,當我們推送代碼的時候就可以觸發自動構建流程,在構建完成后我們可以將代碼自動地推送到GitPages,之后我們就可以手動獲取GitPages的腳本鏈接并且填入到各個腳本網站了,并且如果打了渠道包也可以分別分發不同的腳本鏈接,這樣就完成了整個流程的自動化,并且借助GitHub還可以將jsDelivr作為CDN使用,下面就是完整的GitAction的配置。

name: publish gh-pages

on:
  push:
    branches:
      - master

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          persist-credentials: false

      - name: install and build
        run: |
          npm install -g pnpm@6.24.3
          pnpm install
          pnpm run build
      - name: deploy
        uses: JamesIves/github-pages-deploy-action@releases/v3
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH: gh-pages
          FOLDER: dist

每日一題

https://github.com/WindrunnerMax/EveryDay

參考

https://wiki.greasespot.net/Security
https://docs.scriptcat.org/docs/dev/api/
https://en.wikipedia.org/wiki/Greasemonkey
https://wiki.greasespot.net/Metadata_Block
https://juejin.cn/post/6844903977759293448  
https://www.tampermonkey.net/documentation.php
https://wiki.greasespot.net/Greasemonkey_Manual:API
https://learn.scriptcat.org/docs/%E7%AE%80%E4%BB%8B/
http://jixunmoe.github.io/gmDevBook/#/doc/intro/gmScript

總結

以上是生活随笔為你收集整理的从零实现的浏览器Web脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产办公室秘书无码精品99 | 久久99精品国产.久久久久 | 男女超爽视频免费播放 | 成 人影片 免费观看 | 日本爽爽爽爽爽爽在线观看免 | 蜜臀aⅴ国产精品久久久国产老师 | 大胆欧美熟妇xx | 国语精品一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 人妻插b视频一区二区三区 | 狠狠躁日日躁夜夜躁2020 | 精品夜夜澡人妻无码av蜜桃 | 日本熟妇浓毛 | 亚洲精品国产第一综合99久久 | 国产网红无码精品视频 | 嫩b人妻精品一区二区三区 | 性欧美牲交在线视频 | 中文字幕 亚洲精品 第1页 | 无码av免费一区二区三区试看 | 无遮挡国产高潮视频免费观看 | 午夜精品一区二区三区在线观看 | 亚洲爆乳大丰满无码专区 | 中文字幕乱码中文乱码51精品 | 亚洲中文字幕乱码av波多ji | 东京热无码av男人的天堂 | 影音先锋中文字幕无码 | 一本无码人妻在中文字幕免费 | 欧洲熟妇色 欧美 | 真人与拘做受免费视频一 | 国产特级毛片aaaaaa高潮流水 | 亚洲成熟女人毛毛耸耸多 | 国产精品a成v人在线播放 | 国产精品无码一区二区三区不卡 | 少妇无码一区二区二三区 | 精品无人国产偷自产在线 | 超碰97人人做人人爱少妇 | √天堂中文官网8在线 | 国产深夜福利视频在线 | 成人精品一区二区三区中文字幕 | 日本大香伊一区二区三区 | 少妇一晚三次一区二区三区 | 丰满肥臀大屁股熟妇激情视频 | 日韩少妇白浆无码系列 | 久久人人爽人人爽人人片av高清 | 99re在线播放 | 国产两女互慰高潮视频在线观看 | 熟妇激情内射com | 特黄特色大片免费播放器图片 | 中文字幕av伊人av无码av | 亚洲区小说区激情区图片区 | 亚洲色在线无码国产精品不卡 | 国产在线精品一区二区高清不卡 | 精品久久久中文字幕人妻 | 曰韩少妇内射免费播放 | 久久精品成人欧美大片 | 亚洲欧美日韩综合久久久 | 国产精品99久久精品爆乳 | 性生交大片免费看l | 少妇一晚三次一区二区三区 | 午夜精品久久久内射近拍高清 | 色婷婷综合中文久久一本 | 久久天天躁夜夜躁狠狠 | 免费乱码人妻系列无码专区 | 国产精品无码久久av | 伊人久久大香线焦av综合影院 | 国产性生交xxxxx无码 | 久久久久亚洲精品中文字幕 | 国产精品久久福利网站 | 精品国产乱码久久久久乱码 | 少妇激情av一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲国产精品一区二区第一页 | 粗大的内捧猛烈进出视频 | 性生交大片免费看l | 男人扒开女人内裤强吻桶进去 | 欧美丰满熟妇xxxx性ppx人交 | 国产成人午夜福利在线播放 | 东京热无码av男人的天堂 | 亚洲日本va午夜在线电影 | 日本在线高清不卡免费播放 | 色妞www精品免费视频 | 久热国产vs视频在线观看 | 国产三级久久久精品麻豆三级 | 亚洲中文字幕无码中字 | 精品成人av一区二区三区 | 高清不卡一区二区三区 | 国产乱码精品一品二品 | 少妇性l交大片欧洲热妇乱xxx | 18无码粉嫩小泬无套在线观看 | 亚洲一区二区观看播放 | 午夜无码区在线观看 | 精品国产成人一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 久久人人爽人人爽人人片av高清 | 天下第一社区视频www日本 | 男女超爽视频免费播放 | 特级做a爰片毛片免费69 | 欧美怡红院免费全部视频 | 欧美三级a做爰在线观看 | 中国女人内谢69xxxxxa片 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲一区二区三区国产精华液 | 久久人妻内射无码一区三区 | 欧美 亚洲 国产 另类 | 欧美国产亚洲日韩在线二区 | 偷窥日本少妇撒尿chinese | 亚洲精品午夜无码电影网 | 天天做天天爱天天爽综合网 | 日产精品99久久久久久 | 国产av一区二区精品久久凹凸 | 亚洲色www成人永久网址 | 国产热a欧美热a在线视频 | 嫩b人妻精品一区二区三区 | 欧美日韩一区二区三区自拍 | 亚洲色偷偷偷综合网 | 人人妻人人澡人人爽欧美一区九九 | 久久精品女人天堂av免费观看 | 国产av无码专区亚洲a∨毛片 | 欧美色就是色 | 波多野42部无码喷潮在线 | 最近免费中文字幕中文高清百度 | 国产精品怡红院永久免费 | 白嫩日本少妇做爰 | 亚洲综合无码久久精品综合 | 午夜福利电影 | 日日天日日夜日日摸 | 国产超级va在线观看视频 | 性欧美熟妇videofreesex | 内射爽无广熟女亚洲 | 亚洲日本一区二区三区在线 | 国产猛烈高潮尖叫视频免费 | 88国产精品欧美一区二区三区 | 色一情一乱一伦 | 亚洲经典千人经典日产 | 精品国产av色一区二区深夜久久 | 亚洲国产高清在线观看视频 | 色婷婷综合中文久久一本 | 内射巨臀欧美在线视频 | 欧洲欧美人成视频在线 | 国产一区二区三区影院 | 欧美性黑人极品hd | 中文字幕无码日韩欧毛 | 精品久久久无码人妻字幂 | 99久久人妻精品免费一区 | 乱码av麻豆丝袜熟女系列 | 露脸叫床粗话东北少妇 | 亚洲精品久久久久avwww潮水 | 免费无码肉片在线观看 | 2019午夜福利不卡片在线 | 久久综合九色综合欧美狠狠 | 思思久久99热只有频精品66 | 精品乱子伦一区二区三区 | 久久久久久av无码免费看大片 | 99久久久无码国产aaa精品 | 日韩欧美群交p片內射中文 | 美女极度色诱视频国产 | 国产午夜亚洲精品不卡 | 国产精品嫩草久久久久 | 97夜夜澡人人双人人人喊 | 中文字幕精品av一区二区五区 | 日本一区二区三区免费播放 | 精品国产青草久久久久福利 | 久久99精品国产麻豆蜜芽 | 综合网日日天干夜夜久久 | 国产一区二区不卡老阿姨 | 国产精品久久精品三级 | 欧美老妇与禽交 | 欧美成人免费全部网站 | 国产av一区二区三区最新精品 | 精品一区二区不卡无码av | 青草青草久热国产精品 | 国产偷国产偷精品高清尤物 | 国产在线精品一区二区高清不卡 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲人成网站在线播放942 | 亚洲爆乳大丰满无码专区 | 欧美精品在线观看 | 国产无遮挡又黄又爽免费视频 | 亚洲综合色区中文字幕 | 国产美女精品一区二区三区 | 国产人妻人伦精品 | 国产国语老龄妇女a片 | 国产真人无遮挡作爱免费视频 | 伊人久久大香线焦av综合影院 | 日本精品人妻无码77777 天堂一区人妻无码 | 理论片87福利理论电影 | 国产极品美女高潮无套在线观看 | 婷婷丁香六月激情综合啪 | 无码午夜成人1000部免费视频 | 国产精品人人爽人人做我的可爱 | 亚洲aⅴ无码成人网站国产app | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品无套呻吟在线 | 乱中年女人伦av三区 | 人妻与老人中文字幕 | 国产人妻人伦精品1国产丝袜 | 国产办公室秘书无码精品99 | 真人与拘做受免费视频一 | 亚洲午夜福利在线观看 | 自拍偷自拍亚洲精品10p | 国产精品福利视频导航 | 欧美老熟妇乱xxxxx | 中文字幕无线码 | 四虎国产精品一区二区 | 国产情侣作爱视频免费观看 | 午夜性刺激在线视频免费 | 无码午夜成人1000部免费视频 | 日本乱人伦片中文三区 | 欧美亚洲日韩国产人成在线播放 | 欧美黑人性暴力猛交喷水 | 午夜性刺激在线视频免费 | 国产尤物精品视频 | 精品国偷自产在线 | 日产精品高潮呻吟av久久 | 性色av无码免费一区二区三区 | 99久久精品无码一区二区毛片 | 丰满人妻被黑人猛烈进入 | 中文字幕乱码亚洲无线三区 | 99国产精品白浆在线观看免费 | 国产亚洲精品精品国产亚洲综合 | 国产在线无码精品电影网 | 97精品人妻一区二区三区香蕉 | 亚洲性无码av中文字幕 | 网友自拍区视频精品 | 精品国产一区二区三区四区在线看 | 狠狠亚洲超碰狼人久久 | 国内少妇偷人精品视频免费 | 婷婷六月久久综合丁香 | 国内精品九九久久久精品 | 蜜桃av抽搐高潮一区二区 | 色妞www精品免费视频 | 青青青爽视频在线观看 | 一本久久伊人热热精品中文字幕 | 亚洲第一网站男人都懂 | 国产精品福利视频导航 | 日日躁夜夜躁狠狠躁 | 国产精品高潮呻吟av久久4虎 | 久久久精品人妻久久影视 | 亚洲自偷自拍另类第1页 | 牲欲强的熟妇农村老妇女 | 欧美 亚洲 国产 另类 | 久久久精品人妻久久影视 | 国产一区二区三区影院 | 亚洲熟悉妇女xxx妇女av | 日本乱人伦片中文三区 | 成人无码精品1区2区3区免费看 | 天堂а√在线地址中文在线 | 国精品人妻无码一区二区三区蜜柚 | 色婷婷香蕉在线一区二区 | 国产午夜福利100集发布 | 亚洲最大成人网站 | 综合网日日天干夜夜久久 | 精品国偷自产在线视频 | 在线欧美精品一区二区三区 | 少妇无码av无码专区在线观看 | 国产无套粉嫩白浆在线 | 色偷偷人人澡人人爽人人模 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 色欲综合久久中文字幕网 | 曰韩无码二三区中文字幕 | 欧美性黑人极品hd | 国产艳妇av在线观看果冻传媒 | 国产人妻大战黑人第1集 | 女高中生第一次破苞av | 少妇激情av一区二区 | 两性色午夜视频免费播放 | 精品无码av一区二区三区 | 欧美三级不卡在线观看 | 精品国产青草久久久久福利 | 亚洲熟女一区二区三区 | 欧美色就是色 | 7777奇米四色成人眼影 | 欧洲精品码一区二区三区免费看 | 最近的中文字幕在线看视频 | 九九久久精品国产免费看小说 | 18禁黄网站男男禁片免费观看 | 色爱情人网站 | 久久久久av无码免费网 | 丝袜美腿亚洲一区二区 | 精品一区二区三区波多野结衣 | 美女张开腿让人桶 | 亚洲日本va中文字幕 | 亚洲人成网站免费播放 | 久久熟妇人妻午夜寂寞影院 | 麻豆国产97在线 | 欧洲 | 宝宝好涨水快流出来免费视频 | 无码毛片视频一区二区本码 | 捆绑白丝粉色jk震动捧喷白浆 | 精品无人国产偷自产在线 | 波多野结衣av一区二区全免费观看 | 成人片黄网站色大片免费观看 | 国产精品18久久久久久麻辣 | 人妻尝试又大又粗久久 | 国产av无码专区亚洲a∨毛片 | 精品日本一区二区三区在线观看 | 中文字幕无码热在线视频 | 国产高清不卡无码视频 | 国产成人无码av片在线观看不卡 | 国产精品久久久久久亚洲影视内衣 | 奇米影视7777久久精品 | 午夜时刻免费入口 | 日韩亚洲欧美中文高清在线 | 麻豆国产97在线 | 欧洲 | 大肉大捧一进一出好爽视频 | 久久人妻内射无码一区三区 | 亚洲а∨天堂久久精品2021 | 最近免费中文字幕中文高清百度 | 亚洲性无码av中文字幕 | 婷婷色婷婷开心五月四房播播 | 日日摸天天摸爽爽狠狠97 | 强伦人妻一区二区三区视频18 | 国产精品理论片在线观看 | 国产猛烈高潮尖叫视频免费 | 全球成人中文在线 | 国产精品亚洲一区二区三区喷水 | 四虎影视成人永久免费观看视频 | 久久精品人人做人人综合试看 | 久久人人爽人人爽人人片ⅴ | 欧美熟妇另类久久久久久不卡 | 天天摸天天透天天添 | 无码精品人妻一区二区三区av | 亚洲综合色区中文字幕 | 夫妻免费无码v看片 | 中文字幕+乱码+中文字幕一区 | 亚洲欧美国产精品专区久久 | 国产免费无码一区二区视频 | 四十如虎的丰满熟妇啪啪 | 国内揄拍国内精品少妇国语 | 亚洲s色大片在线观看 | 亚洲欧美日韩成人高清在线一区 | 久久精品国产99精品亚洲 | 免费人成在线观看网站 | 最近中文2019字幕第二页 | 欧美阿v高清资源不卡在线播放 | 亚洲人交乣女bbw | 中文字幕av伊人av无码av | 久久人人爽人人爽人人片av高清 | 久久精品一区二区三区四区 | 麻豆精品国产精华精华液好用吗 | 久久久久亚洲精品男人的天堂 | 国产成人无码午夜视频在线观看 | 人妻天天爽夜夜爽一区二区 | 精品少妇爆乳无码av无码专区 | 网友自拍区视频精品 | 99精品国产综合久久久久五月天 | 婷婷五月综合激情中文字幕 | 久久国产精品偷任你爽任你 | a在线亚洲男人的天堂 | 狠狠色欧美亚洲狠狠色www | 狂野欧美性猛xxxx乱大交 | 色欲人妻aaaaaaa无码 | 欧美丰满熟妇xxxx | 国产手机在线αⅴ片无码观看 | 狠狠色丁香久久婷婷综合五月 | 国产精品无码mv在线观看 | 亚洲精品一区二区三区在线 | 曰本女人与公拘交酡免费视频 | 99国产精品白浆在线观看免费 | 又黄又爽又色的视频 | 无码人妻出轨黑人中文字幕 | 日本在线高清不卡免费播放 | 四虎影视成人永久免费观看视频 | 性啪啪chinese东北女人 | 亚洲 欧美 激情 小说 另类 | 日本一卡二卡不卡视频查询 | 99精品视频在线观看免费 | 无码人妻av免费一区二区三区 | 国产欧美熟妇另类久久久 | 亚洲娇小与黑人巨大交 | 四虎国产精品一区二区 | 亚洲一区二区三区在线观看网站 | av无码电影一区二区三区 | 波多野结衣av一区二区全免费观看 | 亚洲高清偷拍一区二区三区 | 国精产品一区二区三区 | 久久久精品成人免费观看 | 激情人妻另类人妻伦 | 中文字幕无码av波多野吉衣 | 精品午夜福利在线观看 | 中文无码成人免费视频在线观看 | 爽爽影院免费观看 | 欧美性生交xxxxx久久久 | 国内精品九九久久久精品 | 1000部啪啪未满十八勿入下载 | 爱做久久久久久 | 国产精品美女久久久久av爽李琼 | 青草青草久热国产精品 | 大色综合色综合网站 | 一本一道久久综合久久 | 欧美老妇交乱视频在线观看 | 两性色午夜免费视频 | 午夜性刺激在线视频免费 | 人妻尝试又大又粗久久 | 精品久久久无码中文字幕 | 亚洲国产一区二区三区在线观看 | 婷婷综合久久中文字幕蜜桃三电影 | 国产熟妇高潮叫床视频播放 | 激情国产av做激情国产爱 | 国产亚洲精品久久久久久久久动漫 | 日欧一片内射va在线影院 | 国产真实乱对白精彩久久 | 亚洲色偷偷偷综合网 | 性色欲网站人妻丰满中文久久不卡 | 亚洲 欧美 激情 小说 另类 | 丰满人妻翻云覆雨呻吟视频 | √8天堂资源地址中文在线 | 日韩精品成人一区二区三区 | 中文久久乱码一区二区 | 久久精品国产99精品亚洲 | 无码一区二区三区在线 | 5858s亚洲色大成网站www | 国产 浪潮av性色四虎 | 久久久久成人精品免费播放动漫 | 天堂а√在线中文在线 | 日本又色又爽又黄的a片18禁 | 久久国产精品二国产精品 | 日本熟妇浓毛 | 国产网红无码精品视频 | 国产午夜福利亚洲第一 | 少妇人妻大乳在线视频 | 日本一区二区三区免费播放 | 久久99精品久久久久久 | 性开放的女人aaa片 | 欧美丰满少妇xxxx性 | 国产精品理论片在线观看 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲日韩中文字幕在线播放 | 中文无码精品a∨在线观看不卡 | 天天拍夜夜添久久精品大 | 国产av人人夜夜澡人人爽麻豆 | 国产精品二区一区二区aⅴ污介绍 | 亚洲男人av香蕉爽爽爽爽 | 亚洲欧洲中文日韩av乱码 | 老熟妇乱子伦牲交视频 | 天堂无码人妻精品一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 婷婷六月久久综合丁香 | 日本va欧美va欧美va精品 | а天堂中文在线官网 | 亚洲精品一区三区三区在线观看 | 初尝人妻少妇中文字幕 | 思思久久99热只有频精品66 | 国产莉萝无码av在线播放 | 中文字幕久久久久人妻 | 成人动漫在线观看 | 兔费看少妇性l交大片免费 | 国内综合精品午夜久久资源 | 欧美日本精品一区二区三区 | 青草青草久热国产精品 | 国产精品第一国产精品 | 欧美兽交xxxx×视频 | 久久午夜夜伦鲁鲁片无码免费 | 内射白嫩少妇超碰 | 欧美性色19p | 亚洲中文字幕无码中字 | 亚洲一区av无码专区在线观看 | 久久久久国色av免费观看性色 | 国内精品久久毛片一区二区 | 人妻人人添人妻人人爱 | 97资源共享在线视频 | 无码av免费一区二区三区试看 | a国产一区二区免费入口 | 国产免费久久精品国产传媒 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲人成网站免费播放 | 香蕉久久久久久av成人 | 久久久久成人片免费观看蜜芽 | 97夜夜澡人人双人人人喊 | 亚洲精品国产品国语在线观看 | 18黄暴禁片在线观看 | 国产亚洲视频中文字幕97精品 | 久久精品女人天堂av免费观看 | 国产色xx群视频射精 | 欧美精品一区二区精品久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 日本爽爽爽爽爽爽在线观看免 | 精品偷拍一区二区三区在线看 | 曰韩少妇内射免费播放 | 亚洲自偷精品视频自拍 | 性色欲情网站iwww九文堂 | 亚洲国产精品毛片av不卡在线 | 国产99久久精品一区二区 | 国产精品爱久久久久久久 | 国产免费无码一区二区视频 | 又紧又大又爽精品一区二区 | 成年美女黄网站色大免费视频 | 精品一二三区久久aaa片 | 亚洲色www成人永久网址 | 国产97色在线 | 免 | 大屁股大乳丰满人妻 | 欧美丰满熟妇xxxx性ppx人交 | 午夜肉伦伦影院 | 人人超人人超碰超国产 | 国产精品va在线观看无码 | 成人无码精品一区二区三区 | 国产免费久久精品国产传媒 | 久久99精品国产麻豆 | 国产精品亚洲а∨无码播放麻豆 | 精品国产一区二区三区四区 | 国产人妻精品午夜福利免费 | 精品久久久无码人妻字幂 | 人人妻人人澡人人爽欧美精品 | 成 人 网 站国产免费观看 | 特大黑人娇小亚洲女 | 国产精品久久久一区二区三区 | 中文精品无码中文字幕无码专区 | 成人亚洲精品久久久久 | 18无码粉嫩小泬无套在线观看 | 国产精品高潮呻吟av久久 | 天堂亚洲免费视频 | 一个人看的视频www在线 | 亚洲中文无码av永久不收费 | 天天av天天av天天透 | 亚洲人成无码网www | 国产精品美女久久久久av爽李琼 | 亚洲精品综合五月久久小说 | 精品无码国产自产拍在线观看蜜 | 亚洲欧美国产精品久久 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 久久久无码中文字幕久... | 骚片av蜜桃精品一区 | 亚洲中文字幕无码中文字在线 | 色 综合 欧美 亚洲 国产 | 精品夜夜澡人妻无码av蜜桃 | 日韩精品无码免费一区二区三区 | 国产性生大片免费观看性 | 日日碰狠狠躁久久躁蜜桃 | 亚洲精品一区二区三区在线 | 无遮挡啪啪摇乳动态图 | 国产综合久久久久鬼色 | 内射老妇bbwx0c0ck | 久激情内射婷内射蜜桃人妖 | 久久久精品人妻久久影视 | 中文字幕+乱码+中文字幕一区 | 综合人妻久久一区二区精品 | 久久精品视频在线看15 | 久久久久久久女国产乱让韩 | 欧美人与牲动交xxxx | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产成人无码av一区二区 | 日本熟妇浓毛 | 熟妇女人妻丰满少妇中文字幕 | 国产激情精品一区二区三区 | 麻豆精品国产精华精华液好用吗 | 久久无码中文字幕免费影院蜜桃 | 精品无码国产一区二区三区av | 国产香蕉尹人视频在线 | 波多野结衣高清一区二区三区 | 久久精品中文闷骚内射 | 久久久无码中文字幕久... | 国产人妻大战黑人第1集 | 国产婷婷色一区二区三区在线 | 国产精品亚洲а∨无码播放麻豆 | 国内精品九九久久久精品 | 俺去俺来也在线www色官网 | 免费乱码人妻系列无码专区 | 久久天天躁狠狠躁夜夜免费观看 | 国产午夜亚洲精品不卡下载 | 中文字幕无线码免费人妻 | 国产色精品久久人妻 | 欧美亚洲日韩国产人成在线播放 | 日韩精品成人一区二区三区 | 久久精品国产大片免费观看 | 三级4级全黄60分钟 | 国产综合在线观看 | 色综合久久久无码网中文 | 色综合天天综合狠狠爱 | 色婷婷综合激情综在线播放 | 午夜无码区在线观看 | 强辱丰满人妻hd中文字幕 | 久久综合久久自在自线精品自 | 国产亚洲精品久久久久久久久动漫 | 久久综合香蕉国产蜜臀av | 国产特级毛片aaaaaaa高清 | 国产激情无码一区二区app | 97久久精品无码一区二区 | 一本精品99久久精品77 | 一个人看的www免费视频在线观看 | 久久aⅴ免费观看 | 双乳奶水饱满少妇呻吟 | 少妇无套内谢久久久久 | 红桃av一区二区三区在线无码av | 东京无码熟妇人妻av在线网址 | 黑人巨大精品欧美黑寡妇 | 国产一区二区三区四区五区加勒比 | 国产精品资源一区二区 | 一二三四在线观看免费视频 | 国产精品久久久久影院嫩草 | 久久久中文字幕日本无吗 | 免费看少妇作爱视频 | 少妇邻居内射在线 | 国产精品自产拍在线观看 | 国产精品亚洲а∨无码播放麻豆 | 精品人人妻人人澡人人爽人人 | 亚洲狠狠色丁香婷婷综合 | 久久国产劲爆∧v内射 | 色婷婷av一区二区三区之红樱桃 | 亚洲日韩精品欧美一区二区 | 午夜成人1000部免费视频 | 日韩精品无码一区二区中文字幕 | 亚洲精品美女久久久久久久 | 日本一本二本三区免费 | 国产 浪潮av性色四虎 | 国产激情精品一区二区三区 | 红桃av一区二区三区在线无码av | 水蜜桃av无码 | 天堂久久天堂av色综合 | 4hu四虎永久在线观看 | 国产精品久免费的黄网站 | 丝袜足控一区二区三区 | 欧美人与牲动交xxxx | 亚洲成a人一区二区三区 | 色婷婷综合激情综在线播放 | 国产内射爽爽大片视频社区在线 | 国产免费无码一区二区视频 | 欧美性黑人极品hd | 亚洲爆乳大丰满无码专区 | 日韩av激情在线观看 | 人妻无码久久精品人妻 | 乱人伦中文视频在线观看 | 中文毛片无遮挡高清免费 | 色婷婷欧美在线播放内射 | 国内精品久久毛片一区二区 | 粉嫩少妇内射浓精videos | 欧美国产亚洲日韩在线二区 | 大肉大捧一进一出好爽视频 | 性生交大片免费看女人按摩摩 | 好爽又高潮了毛片免费下载 | 精品亚洲韩国一区二区三区 | 色欲人妻aaaaaaa无码 | 成人免费视频视频在线观看 免费 | 无套内射视频囯产 | 欧美日韩久久久精品a片 | 乱人伦人妻中文字幕无码 | 久久综合九色综合欧美狠狠 | 国产精品成人av在线观看 | 香蕉久久久久久av成人 | 婷婷丁香五月天综合东京热 | 国产人妖乱国产精品人妖 | 国产疯狂伦交大片 | 欧美乱妇无乱码大黄a片 | 99国产精品白浆在线观看免费 | 日本欧美一区二区三区乱码 | 欧洲vodafone精品性 | 午夜福利不卡在线视频 | 国产精品亚洲lv粉色 | 久激情内射婷内射蜜桃人妖 | 全黄性性激高免费视频 | 西西人体www44rt大胆高清 | 纯爱无遮挡h肉动漫在线播放 | 无遮挡啪啪摇乳动态图 | 亚洲国产精品久久久天堂 | 国产午夜视频在线观看 | 亚洲aⅴ无码成人网站国产app | 色综合久久网 | 亚洲色偷偷男人的天堂 | а√资源新版在线天堂 | 欧美性黑人极品hd | 给我免费的视频在线观看 | 国产三级久久久精品麻豆三级 | 色综合久久久无码中文字幕 | 76少妇精品导航 | 国产精品18久久久久久麻辣 | 久久久婷婷五月亚洲97号色 | 国产精品嫩草久久久久 | 娇妻被黑人粗大高潮白浆 | 亚洲欧美国产精品久久 | 最近的中文字幕在线看视频 | 亚洲日本一区二区三区在线 | 99久久精品午夜一区二区 | 亚洲色www成人永久网址 | 少妇一晚三次一区二区三区 | 男女超爽视频免费播放 | 少妇无码一区二区二三区 | 香港三级日本三级妇三级 | 婷婷五月综合缴情在线视频 | 国产精品亚洲lv粉色 | 日韩精品a片一区二区三区妖精 | 中文字幕 人妻熟女 | 亚洲日韩av一区二区三区四区 | 久久久精品国产sm最大网站 | 亚洲中文字幕av在天堂 | 国内精品久久毛片一区二区 | 四十如虎的丰满熟妇啪啪 | 国产精品高潮呻吟av久久4虎 | 亚洲自偷精品视频自拍 | 国产欧美精品一区二区三区 | 少妇被粗大的猛进出69影院 | 夫妻免费无码v看片 | 丝袜人妻一区二区三区 | 无遮无挡爽爽免费视频 | 国产97在线 | 亚洲 | 无码免费一区二区三区 | 扒开双腿吃奶呻吟做受视频 | 中文无码伦av中文字幕 | 久久精品成人欧美大片 | 奇米影视7777久久精品人人爽 | 性欧美牲交在线视频 | 精品水蜜桃久久久久久久 | 国产人妻久久精品二区三区老狼 | 久久精品国产一区二区三区肥胖 | a片在线免费观看 | 亚洲日韩中文字幕在线播放 | 香港三级日本三级妇三级 | 国产热a欧美热a在线视频 | 国产综合在线观看 | 精品久久久中文字幕人妻 | 国内精品人妻无码久久久影院 | 久久久精品成人免费观看 | 国内精品久久毛片一区二区 | 色窝窝无码一区二区三区色欲 | 中文字幕人妻丝袜二区 | 一二三四在线观看免费视频 | 日本大乳高潮视频在线观看 | 伊人久久大香线蕉亚洲 | www国产亚洲精品久久久日本 | 国产内射老熟女aaaa | 国产午夜亚洲精品不卡下载 | 国产综合色产在线精品 | 亚洲天堂2017无码中文 | 亚洲日韩一区二区三区 | 国产成人人人97超碰超爽8 | 乱人伦人妻中文字幕无码久久网 | 亚洲国产欧美在线成人 | 一个人看的www免费视频在线观看 | 国产一精品一av一免费 | 精品无码国产自产拍在线观看蜜 | 久久精品国产一区二区三区肥胖 | 免费无码av一区二区 | 久久精品国产大片免费观看 | 日韩av无码一区二区三区不卡 | 中文字幕人妻丝袜二区 | 999久久久国产精品消防器材 | 久久综合激激的五月天 | 性欧美疯狂xxxxbbbb | av无码不卡在线观看免费 | 人人爽人人澡人人人妻 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产av剧情md精品麻豆 | 人妻熟女一区 | 欧美性生交xxxxx久久久 | 久久国产精品精品国产色婷婷 | 成人精品视频一区二区三区尤物 | 久久亚洲国产成人精品性色 | 欧美大屁股xxxxhd黑色 | 国产特级毛片aaaaaa高潮流水 | 成人精品视频一区二区 | 久久午夜无码鲁丝片午夜精品 | 女人被男人爽到呻吟的视频 | 国产猛烈高潮尖叫视频免费 | 国产乱人偷精品人妻a片 | 亚洲va欧美va天堂v国产综合 | 呦交小u女精品视频 | 熟妇人妻激情偷爽文 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 欧美国产亚洲日韩在线二区 | 日本一卡二卡不卡视频查询 | 国产乱人伦偷精品视频 | 国内老熟妇对白xxxxhd | 精品国偷自产在线视频 | 人妻少妇被猛烈进入中文字幕 | 日日干夜夜干 | 亚洲精品一区二区三区四区五区 | 日韩亚洲欧美中文高清在线 | 免费观看激色视频网站 | 在线播放亚洲第一字幕 | 国产熟女一区二区三区四区五区 | 激情内射日本一区二区三区 | 漂亮人妻洗澡被公强 日日躁 | 在线视频网站www色 | 亚洲男人av香蕉爽爽爽爽 | 青青青爽视频在线观看 | 美女极度色诱视频国产 | 久久无码人妻影院 | 中文无码成人免费视频在线观看 | 亚洲国产精品久久人人爱 | 亚洲成熟女人毛毛耸耸多 | 天天燥日日燥 | 中文字幕无码免费久久99 | 久久久亚洲欧洲日产国码αv | 亚洲小说图区综合在线 | 成人片黄网站色大片免费观看 | aⅴ亚洲 日韩 色 图网站 播放 | 国产亚洲日韩欧美另类第八页 | 久久精品中文闷骚内射 | 国产精品无码一区二区桃花视频 | 国产成人精品必看 | 中文精品无码中文字幕无码专区 | 精品一区二区三区无码免费视频 | 黑人巨大精品欧美黑寡妇 | 亚洲爆乳大丰满无码专区 | 日本一区二区更新不卡 | 300部国产真实乱 | 国产口爆吞精在线视频 | 国产午夜福利亚洲第一 | 超碰97人人射妻 | 成人一在线视频日韩国产 | 色妞www精品免费视频 | 狠狠色丁香久久婷婷综合五月 | 久久无码中文字幕免费影院蜜桃 | 国产婷婷色一区二区三区在线 | 九一九色国产 | 日日摸夜夜摸狠狠摸婷婷 | 国产黄在线观看免费观看不卡 | 一二三四社区在线中文视频 | 国产免费无码一区二区视频 | 午夜男女很黄的视频 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲va中文字幕无码久久不卡 | 日日天日日夜日日摸 | 成人欧美一区二区三区黑人 | 给我免费的视频在线观看 | 四虎国产精品一区二区 | 久久久久久国产精品无码下载 | 妺妺窝人体色www在线小说 | 国产乱人无码伦av在线a | 午夜熟女插插xx免费视频 | 中文字幕人妻无码一区二区三区 | 国产内射老熟女aaaa | 夜夜高潮次次欢爽av女 | 超碰97人人射妻 | 亚洲欧美日韩成人高清在线一区 | 天堂а√在线中文在线 | 狂野欧美性猛交免费视频 | 亚洲人亚洲人成电影网站色 | 国产亚洲欧美在线专区 | 中文字幕日产无线码一区 | 男人和女人高潮免费网站 | 中文亚洲成a人片在线观看 | 国产极品美女高潮无套在线观看 | 全球成人中文在线 | 国产美女极度色诱视频www | 国产成人午夜福利在线播放 | 国产精品久久久午夜夜伦鲁鲁 | 九九综合va免费看 | 日韩av无码一区二区三区 | 国产精品手机免费 | 久久综合色之久久综合 | 国产精品无套呻吟在线 | 欧美 日韩 亚洲 在线 | 国产亚av手机在线观看 | 精品乱码久久久久久久 | 国产精品久久久av久久久 | 日本精品人妻无码77777 天堂一区人妻无码 | 中文字幕亚洲情99在线 | 国精品人妻无码一区二区三区蜜柚 | 亚洲s色大片在线观看 | 波多野42部无码喷潮在线 | 狠狠cao日日穞夜夜穞av | 日韩成人一区二区三区在线观看 | 亚洲小说春色综合另类 | yw尤物av无码国产在线观看 | 亚洲熟妇色xxxxx欧美老妇 | 国产成人无码a区在线观看视频app | 国内揄拍国内精品人妻 | 精品久久8x国产免费观看 | 国产97人人超碰caoprom | 日韩少妇内射免费播放 | 中文字幕乱码中文乱码51精品 | 丰满肥臀大屁股熟妇激情视频 | 四虎永久在线精品免费网址 | 国产内射爽爽大片视频社区在线 | 亚洲色大成网站www国产 | 欧美喷潮久久久xxxxx | 97无码免费人妻超级碰碰夜夜 | 国产亚洲精品久久久久久久 | 久久国产精品偷任你爽任你 | 精品一二三区久久aaa片 | 国产人妻精品午夜福利免费 | 亚洲爆乳精品无码一区二区三区 | 久久www免费人成人片 | 国色天香社区在线视频 | 中文字幕+乱码+中文字幕一区 | 亚洲中文字幕无码中文字在线 | 亚洲国产精品成人久久蜜臀 | 亚洲综合精品香蕉久久网 | 精品欧美一区二区三区久久久 | 好男人www社区 | 无码人妻久久一区二区三区不卡 | 国内精品久久久久久中文字幕 | 久久aⅴ免费观看 | 久久久久久久久蜜桃 | 亚洲欧洲日本无在线码 | 女人被男人爽到呻吟的视频 | 色老头在线一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 国产尤物精品视频 | 亚洲精品一区二区三区大桥未久 | 久久国产劲爆∧v内射 | 亚洲啪av永久无码精品放毛片 | 日韩精品a片一区二区三区妖精 | 亚洲中文字幕va福利 | 天干天干啦夜天干天2017 | 国产精品99爱免费视频 | 国产做国产爱免费视频 | 久久综合狠狠综合久久综合88 | 网友自拍区视频精品 | 一二三四在线观看免费视频 | 熟妇女人妻丰满少妇中文字幕 | 欧美日韩在线亚洲综合国产人 | 免费国产成人高清在线观看网站 | 任你躁在线精品免费 | 亚洲中文字幕无码一久久区 | 强伦人妻一区二区三区视频18 | 女人色极品影院 | 玩弄人妻少妇500系列视频 | 少妇愉情理伦片bd | 男人的天堂2018无码 | 精品少妇爆乳无码av无码专区 | 亚洲大尺度无码无码专区 | 日韩欧美中文字幕在线三区 | 国产精品怡红院永久免费 | 荫蒂被男人添的好舒服爽免费视频 | 国产 精品 自在自线 | 动漫av网站免费观看 | 国内精品久久毛片一区二区 | 成 人 免费观看网站 | а√天堂www在线天堂小说 | 97精品人妻一区二区三区香蕉 | 亚洲a无码综合a国产av中文 | 国产女主播喷水视频在线观看 | 一本久道久久综合狠狠爱 | 亚洲成av人在线观看网址 | 激情亚洲一区国产精品 | 无码av最新清无码专区吞精 | 精品国偷自产在线 | 天天做天天爱天天爽综合网 | 国产麻豆精品一区二区三区v视界 | 亚洲精品国偷拍自产在线麻豆 | 伊人久久婷婷五月综合97色 | 日韩亚洲欧美精品综合 | a在线观看免费网站大全 | 99久久人妻精品免费一区 | www一区二区www免费 | 97久久超碰中文字幕 | 久久综合激激的五月天 | 无码任你躁久久久久久久 | 精品厕所偷拍各类美女tp嘘嘘 | 中文字幕av无码一区二区三区电影 | yw尤物av无码国产在线观看 | 伊人久久大香线焦av综合影院 | 久久精品成人欧美大片 | 亚洲aⅴ无码成人网站国产app | 中文字幕久久久久人妻 | 欧美人与物videos另类 | 亚洲一区二区三区偷拍女厕 | 无码帝国www无码专区色综合 | 人妻少妇被猛烈进入中文字幕 | 国内丰满熟女出轨videos | 国产精品久久久久久久影院 | 国产精品亚洲lv粉色 | 妺妺窝人体色www婷婷 | 色综合天天综合狠狠爱 | 国产精品久久久久无码av色戒 | 午夜福利一区二区三区在线观看 | 少妇无码一区二区二三区 | 高潮毛片无遮挡高清免费视频 | 日日夜夜撸啊撸 | 高潮毛片无遮挡高清免费视频 | 亚洲成av人综合在线观看 | 熟妇人妻激情偷爽文 | а天堂中文在线官网 | 亚洲色在线无码国产精品不卡 | 人人超人人超碰超国产 | 欧美自拍另类欧美综合图片区 | 乱人伦中文视频在线观看 | av人摸人人人澡人人超碰下载 | 乱人伦中文视频在线观看 | 香蕉久久久久久av成人 | 99久久精品日本一区二区免费 | 中文字幕中文有码在线 | 丰满妇女强制高潮18xxxx | 国产精品久久福利网站 | 无码吃奶揉捏奶头高潮视频 | 女高中生第一次破苞av | 强开小婷嫩苞又嫩又紧视频 | 中文字幕乱码人妻二区三区 | 国产亚洲人成在线播放 | 99久久久无码国产aaa精品 | 欧美丰满熟妇xxxx性ppx人交 | 天天躁夜夜躁狠狠是什么心态 | 国产美女精品一区二区三区 | 亚洲欧美日韩国产精品一区二区 | 丰满肥臀大屁股熟妇激情视频 | 久久国语露脸国产精品电影 | 亚洲中文字幕乱码av波多ji | 日本xxxx色视频在线观看免费 | 人人妻人人藻人人爽欧美一区 | 久久精品人人做人人综合 | 狠狠噜狠狠狠狠丁香五月 | 国产精品福利视频导航 | 亚洲成色www久久网站 | 亚洲码国产精品高潮在线 | 亚洲国产精品无码一区二区三区 | 成人欧美一区二区三区黑人免费 | 国产午夜视频在线观看 | 日本乱人伦片中文三区 | 中文无码精品a∨在线观看不卡 | 成年女人永久免费看片 | 爆乳一区二区三区无码 | 国产手机在线αⅴ片无码观看 | 日韩av无码中文无码电影 | 亚洲va欧美va天堂v国产综合 | 2019nv天堂香蕉在线观看 | 亚洲人成影院在线无码按摩店 | 正在播放东北夫妻内射 | 日产国产精品亚洲系列 | 国内少妇偷人精品视频免费 | 精品无码一区二区三区爱欲 | 成人女人看片免费视频放人 | 红桃av一区二区三区在线无码av | 1000部啪啪未满十八勿入下载 | 国产极品美女高潮无套在线观看 | 亚洲男人av香蕉爽爽爽爽 | 内射巨臀欧美在线视频 | 99久久精品无码一区二区毛片 | 国产精品美女久久久网av | 成人精品一区二区三区中文字幕 | 国产成人无码区免费内射一片色欲 | 又粗又大又硬毛片免费看 | 午夜丰满少妇性开放视频 | 色综合视频一区二区三区 | 久久国产精品二国产精品 | 色综合久久久无码网中文 | 日本丰满熟妇videos | 无码国内精品人妻少妇 | 久久国语露脸国产精品电影 | 欧美精品一区二区精品久久 | 少妇厨房愉情理9仑片视频 | 国产精品毛片一区二区 | 强奷人妻日本中文字幕 | 中文字幕亚洲情99在线 | 东京无码熟妇人妻av在线网址 | 欧美精品国产综合久久 | 少妇无套内谢久久久久 | 亚洲欧洲日本无在线码 | 久9re热视频这里只有精品 | 国产精品无码久久av | 99精品国产综合久久久久五月天 | 久久婷婷五月综合色国产香蕉 | 欧美兽交xxxx×视频 | 国产做国产爱免费视频 | 欧美丰满少妇xxxx性 | 中文字幕无码av波多野吉衣 | 久激情内射婷内射蜜桃人妖 | 精品午夜福利在线观看 | 国产成人综合色在线观看网站 | 伊人久久婷婷五月综合97色 | 亚洲精品一区二区三区四区五区 | 亚洲性无码av中文字幕 | 精品无码av一区二区三区 | 色五月丁香五月综合五月 | 无码毛片视频一区二区本码 | yw尤物av无码国产在线观看 | 国产又粗又硬又大爽黄老大爷视 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产两女互慰高潮视频在线观看 | 男女超爽视频免费播放 | 亚洲日韩一区二区 | 亚洲国产午夜精品理论片 | 中文字幕乱妇无码av在线 | 无遮挡国产高潮视频免费观看 | 免费播放一区二区三区 | 黑森林福利视频导航 | 国产色视频一区二区三区 | 丰满人妻被黑人猛烈进入 | 又粗又大又硬毛片免费看 | 三上悠亚人妻中文字幕在线 | 亚洲一区二区三区香蕉 | 欧美野外疯狂做受xxxx高潮 | 欧美日韩视频无码一区二区三 | 欧美日韩视频无码一区二区三 | 在线观看国产一区二区三区 | 中文字幕人妻无码一区二区三区 | 日韩精品一区二区av在线 | 色爱情人网站 | 午夜嘿嘿嘿影院 | 亚洲第一网站男人都懂 | 丰满少妇熟乱xxxxx视频 | 亚洲日本va中文字幕 | 激情五月综合色婷婷一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 国产成人精品一区二区在线小狼 | 99久久99久久免费精品蜜桃 | 欧洲vodafone精品性 | 国产精品亚洲综合色区韩国 | 亚洲午夜久久久影院 | 欧美黑人巨大xxxxx | 99精品国产综合久久久久五月天 | 蜜桃视频韩日免费播放 | 超碰97人人射妻 | 人妻少妇精品视频专区 | 蜜臀aⅴ国产精品久久久国产老师 | 88国产精品欧美一区二区三区 | 久久精品人妻少妇一区二区三区 | 欧美国产日韩亚洲中文 | 色欲久久久天天天综合网精品 | 熟女俱乐部五十路六十路av | 九九在线中文字幕无码 | 亚洲精品一区国产 | 国产av剧情md精品麻豆 | 日韩欧美成人免费观看 | 国产av人人夜夜澡人人爽麻豆 | 人妻与老人中文字幕 | 久久久中文字幕日本无吗 | 久久综合给久久狠狠97色 | 国产做国产爱免费视频 | 国产在线无码精品电影网 | 精品国产国产综合精品 | 7777奇米四色成人眼影 | √天堂中文官网8在线 | 国产免费久久久久久无码 | 亚洲成熟女人毛毛耸耸多 | 日本一卡2卡3卡四卡精品网站 | 成 人影片 免费观看 | 性欧美疯狂xxxxbbbb | 熟妇女人妻丰满少妇中文字幕 | 亚洲伊人久久精品影院 | 国产免费久久精品国产传媒 | 免费观看的无遮挡av | 丰满少妇熟乱xxxxx视频 | 2019午夜福利不卡片在线 | 少妇久久久久久人妻无码 | 丁香花在线影院观看在线播放 | 精品一二三区久久aaa片 | 成人亚洲精品久久久久 | 老熟妇仑乱视频一区二区 | 乌克兰少妇性做爰 | 国产乱人伦av在线无码 | 亚洲精品久久久久中文第一幕 | 国产一区二区不卡老阿姨 | а√天堂www在线天堂小说 | 国产国语老龄妇女a片 | 日韩 欧美 动漫 国产 制服 | 亚洲 a v无 码免 费 成 人 a v | 99精品国产综合久久久久五月天 | 国产国语老龄妇女a片 | 蜜桃臀无码内射一区二区三区 | 久久精品中文闷骚内射 | 中文无码伦av中文字幕 | 国产av一区二区精品久久凹凸 | 亚洲精品国产品国语在线观看 | 亚洲 欧美 激情 小说 另类 | 久久久国产一区二区三区 | 久久久久久亚洲精品a片成人 | 日日摸天天摸爽爽狠狠97 | 欧美熟妇另类久久久久久不卡 | 无码av岛国片在线播放 | 亚洲精品久久久久avwww潮水 | 国产精华av午夜在线观看 | 玩弄少妇高潮ⅹxxxyw | 国产无套粉嫩白浆在线 | 欧美日本免费一区二区三区 | 青春草在线视频免费观看 | 国产亚洲视频中文字幕97精品 | 无码免费一区二区三区 | 国产综合在线观看 | 久久无码人妻影院 | 3d动漫精品啪啪一区二区中 | 亚洲精品一区二区三区大桥未久 | 日韩少妇内射免费播放 | 日韩av无码一区二区三区不卡 | 亚洲精品久久久久中文第一幕 | 性色欲网站人妻丰满中文久久不卡 | 午夜福利一区二区三区在线观看 | 国产在线一区二区三区四区五区 | 久久国产精品萌白酱免费 | 最新版天堂资源中文官网 | 永久免费观看美女裸体的网站 | 欧美性黑人极品hd | 中文精品无码中文字幕无码专区 | 又色又爽又黄的美女裸体网站 | 成人精品一区二区三区中文字幕 | 内射老妇bbwx0c0ck | 亚洲精品美女久久久久久久 | 国产熟女一区二区三区四区五区 | 人妻中文无码久热丝袜 | 国产亚洲精品久久久久久 | 中文字幕人成乱码熟女app | 国产极品视觉盛宴 | 乱人伦中文视频在线观看 | 久久综合狠狠综合久久综合88 | 国产精品鲁鲁鲁 | 少妇无码一区二区二三区 | 久久综合色之久久综合 | 国产日产欧产精品精品app | 欧美午夜特黄aaaaaa片 | 国产亚洲精品久久久久久久久动漫 | 性欧美牲交xxxxx视频 | 中文字幕人妻丝袜二区 | 99久久精品日本一区二区免费 | 乱人伦人妻中文字幕无码久久网 | 亚洲精品午夜无码电影网 | 亚洲午夜无码久久 | 欧美野外疯狂做受xxxx高潮 | 牛和人交xxxx欧美 | 成人片黄网站色大片免费观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 亚洲精品午夜国产va久久成人 | 网友自拍区视频精品 | 亚洲日韩中文字幕在线播放 | 久久久中文字幕日本无吗 | 久久99精品国产麻豆 | 国产精品无码一区二区桃花视频 | 亚洲欧美色中文字幕在线 | 1000部夫妻午夜免费 | 久久久国产一区二区三区 | 欧美真人作爱免费视频 | 国产精品久久久久7777 | 精品亚洲成av人在线观看 | 中文字幕乱码人妻二区三区 | 国产一区二区三区精品视频 | 亚洲 欧美 激情 小说 另类 | 伊人久久大香线焦av综合影院 | 国产成人无码a区在线观看视频app | 国产成人一区二区三区别 | 久久午夜无码鲁丝片午夜精品 | 狂野欧美性猛xxxx乱大交 | 国产av一区二区三区最新精品 | 天堂а√在线地址中文在线 | 7777奇米四色成人眼影 | 亚洲精品一区二区三区四区五区 | 狠狠色噜噜狠狠狠狠7777米奇 | 精品国产一区二区三区四区 | 亚洲第一无码av无码专区 | 日韩视频 中文字幕 视频一区 | 国产猛烈高潮尖叫视频免费 | 97精品国产97久久久久久免费 | 日本精品人妻无码77777 天堂一区人妻无码 | 老子影院午夜精品无码 | 一二三四社区在线中文视频 | 天天燥日日燥 | 国内精品一区二区三区不卡 | 亲嘴扒胸摸屁股激烈网站 | 日本一区二区三区免费高清 | 亚洲日韩中文字幕在线播放 | 亚洲中文字幕va福利 | 蜜桃视频韩日免费播放 | 亚洲 a v无 码免 费 成 人 a v | 久久精品国产一区二区三区肥胖 | 亚洲精品久久久久中文第一幕 | 人妻无码久久精品人妻 | 亚洲欧美色中文字幕在线 | 国产香蕉97碰碰久久人人 | 国产sm调教视频在线观看 | 鲁鲁鲁爽爽爽在线视频观看 | 久激情内射婷内射蜜桃人妖 | 亚洲男人av香蕉爽爽爽爽 | 久精品国产欧美亚洲色aⅴ大片 | 久久亚洲a片com人成 | 精品久久久无码人妻字幂 | 久久国内精品自在自线 | 一本久道高清无码视频 | 亚洲成a人一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 精品国产一区二区三区四区 | 亚洲另类伦春色综合小说 | 免费观看的无遮挡av | 国产精华av午夜在线观看 | 图片区 小说区 区 亚洲五月 | 久久综合给合久久狠狠狠97色 | 精品夜夜澡人妻无码av蜜桃 | 中文字幕乱妇无码av在线 | 中文字幕日产无线码一区 | 色综合久久久久综合一本到桃花网 | 精品成在人线av无码免费看 | 正在播放东北夫妻内射 | 亚洲熟妇色xxxxx亚洲 | 熟女体下毛毛黑森林 | 99国产欧美久久久精品 | 熟女少妇在线视频播放 | 国产色精品久久人妻 | 色综合久久网 | 日本va欧美va欧美va精品 | 国产亚av手机在线观看 | 国产特级毛片aaaaaaa高清 | 无遮挡国产高潮视频免费观看 | 亚洲精品国产a久久久久久 | 国语自产偷拍精品视频偷 | 国产精品毛多多水多 | 熟女少妇在线视频播放 | 亚洲人成影院在线无码按摩店 | 久久综合色之久久综合 | 日日夜夜撸啊撸 | 久久97精品久久久久久久不卡 | 麻豆国产丝袜白领秘书在线观看 | 亚洲精品成人福利网站 | 东京热一精品无码av | 精品亚洲韩国一区二区三区 | 久久久久av无码免费网 | 色欲人妻aaaaaaa无码 | 国产无套内射久久久国产 | 国产精品怡红院永久免费 | 狂野欧美性猛xxxx乱大交 | 亚洲精品一区二区三区婷婷月 | 日本一区二区更新不卡 | 欧美丰满老熟妇xxxxx性 | 亚洲另类伦春色综合小说 | 内射爽无广熟女亚洲 | 亚洲中文无码av永久不收费 | 日日天日日夜日日摸 | 精品水蜜桃久久久久久久 | 精品无码一区二区三区的天堂 | 无码一区二区三区在线 | 国产亚洲tv在线观看 | 精品人妻人人做人人爽夜夜爽 | 欧洲美熟女乱又伦 | 麻豆人妻少妇精品无码专区 | 亚洲国产精品毛片av不卡在线 | 国产无遮挡又黄又爽免费视频 | av人摸人人人澡人人超碰下载 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产乱子伦视频在线播放 | 99久久精品午夜一区二区 | 国产亚洲精品久久久久久大师 | 亚洲呦女专区 | 亚洲精品国偷拍自产在线观看蜜桃 | а√天堂www在线天堂小说 | 麻豆md0077饥渴少妇 | 国产午夜精品一区二区三区嫩草 | 免费人成在线观看网站 | 国产免费久久久久久无码 | 天堂无码人妻精品一区二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产亚洲精品久久久闺蜜 | 乱人伦人妻中文字幕无码 | 无码成人精品区在线观看 | 少妇无码av无码专区在线观看 | 日日摸夜夜摸狠狠摸婷婷 | 无码精品人妻一区二区三区av | 国产亚洲精品久久久ai换 | 国产亚洲精品久久久久久 | 撕开奶罩揉吮奶头视频 | 大乳丰满人妻中文字幕日本 | 最新国产乱人伦偷精品免费网站 | 麻豆国产人妻欲求不满 | 欧美日韩精品 | 久久精品女人的天堂av | 国産精品久久久久久久 | 久久综合久久自在自线精品自 | 国产精品无码久久av | 国产精品无码mv在线观看 | 狠狠色丁香久久婷婷综合五月 | 国产婷婷色一区二区三区在线 | 欧美丰满老熟妇xxxxx性 | 午夜熟女插插xx免费视频 | 欧美阿v高清资源不卡在线播放 | 无码av免费一区二区三区试看 | 55夜色66夜色国产精品视频 | 久久亚洲国产成人精品性色 | 亚洲国产精品毛片av不卡在线 | 久久综合给久久狠狠97色 | 51国偷自产一区二区三区 | 日本精品少妇一区二区三区 | 亚洲一区二区三区在线观看网站 | 日本又色又爽又黄的a片18禁 | 亚洲爆乳大丰满无码专区 | 国模大胆一区二区三区 | 国色天香社区在线视频 | 男人和女人高潮免费网站 | 日韩精品无码一本二本三本色 | 天堂亚洲2017在线观看 | 亚洲日本一区二区三区在线 | 婷婷综合久久中文字幕蜜桃三电影 | 好屌草这里只有精品 | 中文字幕无码乱人伦 | 久久精品中文闷骚内射 | 人妻天天爽夜夜爽一区二区 | 日韩少妇内射免费播放 | 一区二区三区乱码在线 | 欧洲 | 精品无码国产一区二区三区av | 人妻互换免费中文字幕 | 一二三四在线观看免费视频 | 精品国偷自产在线视频 | 久久人人爽人人爽人人片av高清 | 欧美人妻一区二区三区 | 亚洲日韩av片在线观看 | 人妻天天爽夜夜爽一区二区 | 夜夜躁日日躁狠狠久久av | 国产亚洲人成在线播放 | 国产精品爱久久久久久久 | 亚洲 欧美 激情 小说 另类 | 老司机亚洲精品影院 | 成人动漫在线观看 | 夜夜躁日日躁狠狠久久av | 狠狠色欧美亚洲狠狠色www | 国产在线无码精品电影网 | 无码人妻黑人中文字幕 | 波多野结衣aⅴ在线 | 亚洲日韩av一区二区三区四区 | 亚洲aⅴ无码成人网站国产app | 国产欧美亚洲精品a | 日韩欧美成人免费观看 | 国产亚洲精品精品国产亚洲综合 | 日韩无码专区 | 九九久久精品国产免费看小说 | 亚洲精品一区三区三区在线观看 | 亚洲欧洲中文日韩av乱码 | 亚洲爆乳精品无码一区二区三区 | 国产激情精品一区二区三区 | 成人免费视频一区二区 | 亚洲热妇无码av在线播放 | 四虎永久在线精品免费网址 | 午夜无码人妻av大片色欲 | 国产精品va在线观看无码 | 好男人www社区 | 久热国产vs视频在线观看 | 天堂无码人妻精品一区二区三区 | 少妇性l交大片欧洲热妇乱xxx | 伦伦影院午夜理论片 | 免费播放一区二区三区 | 国产精品办公室沙发 | 国产精品久久精品三级 | 少妇性俱乐部纵欲狂欢电影 | 天堂在线观看www | 亚洲国产综合无码一区 | 白嫩日本少妇做爰 | 纯爱无遮挡h肉动漫在线播放 | 久久午夜无码鲁丝片秋霞 | 国产亚洲视频中文字幕97精品 | 男女下面进入的视频免费午夜 | 丁香花在线影院观看在线播放 | 久久久久亚洲精品中文字幕 | 国产无套粉嫩白浆在线 | 国产香蕉尹人综合在线观看 | 人人妻人人澡人人爽欧美一区九九 | 国产av无码专区亚洲awww | 日本免费一区二区三区最新 | 亚洲中文字幕在线无码一区二区 | 精品夜夜澡人妻无码av蜜桃 | 国产真实乱对白精彩久久 | 国产偷国产偷精品高清尤物 | 天堂а√在线中文在线 | 婷婷五月综合缴情在线视频 | 日本一区二区三区免费高清 | 国产亚洲欧美日韩亚洲中文色 | 国产偷抇久久精品a片69 | 98国产精品综合一区二区三区 | 亚洲成色www久久网站 | 亚洲无人区午夜福利码高清完整版 | 亚洲成a人片在线观看无码 | 日本一区二区三区免费播放 | 人妻互换免费中文字幕 | 2020久久超碰国产精品最新 | 欧美性生交xxxxx久久久 | 国产午夜亚洲精品不卡下载 | 国产sm调教视频在线观看 | 国产农村乱对白刺激视频 | 美女极度色诱视频国产 | 国产精品无码一区二区三区不卡 | 日本熟妇大屁股人妻 | 国产情侣作爱视频免费观看 | 国产国语老龄妇女a片 | 国产人妻久久精品二区三区老狼 | 国产精品多人p群无码 | 中文字幕日韩精品一区二区三区 | 国产欧美精品一区二区三区 | 国产成人午夜福利在线播放 | 国产高清av在线播放 | 国产成人综合美国十次 | 天天爽夜夜爽夜夜爽 | 一本久久a久久精品vr综合 | 国产激情一区二区三区 | 国产亚洲人成a在线v网站 | 精品国精品国产自在久国产87 | 国产在线无码精品电影网 | 国产精品久久久一区二区三区 | 国产亚洲美女精品久久久2020 | 国产亚av手机在线观看 | 国产电影无码午夜在线播放 | 伊人久久婷婷五月综合97色 | 水蜜桃av无码 | 妺妺窝人体色www在线小说 | 无码精品人妻一区二区三区av | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 牛和人交xxxx欧美 | 亚洲国产精品美女久久久久 | 一本大道久久东京热无码av | 国产乱人伦av在线无码 | 久久国产精品精品国产色婷婷 | 亚洲欧美色中文字幕在线 | 国产亚洲精品久久久久久久久动漫 | 欧美日本日韩 | 2019nv天堂香蕉在线观看 | 国产三级久久久精品麻豆三级 | 亚洲aⅴ无码成人网站国产app | 97精品国产97久久久久久免费 | 伊人久久大香线蕉av一区二区 | 中文毛片无遮挡高清免费 | 男人扒开女人内裤强吻桶进去 | 国产午夜无码视频在线观看 | 狠狠综合久久久久综合网 | 丰满少妇熟乱xxxxx视频 | 国产精品久久久午夜夜伦鲁鲁 | 天干天干啦夜天干天2017 | 亚洲乱码日产精品bd | 久久婷婷五月综合色国产香蕉 | 人妻互换免费中文字幕 | 一本色道久久综合狠狠躁 | 在线观看国产午夜福利片 | 国内精品九九久久久精品 | 亚洲精品一区二区三区大桥未久 | 强伦人妻一区二区三区视频18 | 国产午夜亚洲精品不卡 | 日本一区二区三区免费高清 | 熟妇人妻中文av无码 | 久久综合久久自在自线精品自 | 老太婆性杂交欧美肥老太 | 亚洲熟女一区二区三区 | 欧美人与物videos另类 | 久久精品人人做人人综合试看 | 亚洲 欧美 激情 小说 另类 | 在线看片无码永久免费视频 | 爆乳一区二区三区无码 | 日韩欧美中文字幕公布 | 亚洲小说春色综合另类 | 丰满少妇熟乱xxxxx视频 | 久久99精品久久久久久动态图 | 精品厕所偷拍各类美女tp嘘嘘 | 丰满少妇人妻久久久久久 | 成人无码精品1区2区3区免费看 | 精品国产一区二区三区四区在线看 | 天海翼激烈高潮到腰振不止 | 色情久久久av熟女人妻网站 | 国产精品无码一区二区桃花视频 | 国产莉萝无码av在线播放 | 久久午夜夜伦鲁鲁片无码免费 | 成熟人妻av无码专区 | 欧洲欧美人成视频在线 | 欧美精品在线观看 | 亚洲 日韩 欧美 成人 在线观看 | 久久精品国产大片免费观看 | 欧美老妇交乱视频在线观看 | 水蜜桃色314在线观看 | 18黄暴禁片在线观看 | 日韩人妻无码中文字幕视频 | 亚洲人交乣女bbw | 亚洲国产精品无码一区二区三区 | 综合网日日天干夜夜久久 | 学生妹亚洲一区二区 | 99麻豆久久久国产精品免费 | 国产精品无码mv在线观看 | 日韩欧美中文字幕在线三区 | 2020久久香蕉国产线看观看 | 天天拍夜夜添久久精品 | 国产内射爽爽大片视频社区在线 | 久久成人a毛片免费观看网站 | 亚洲精品一区二区三区在线 | 国产精品人人爽人人做我的可爱 | 九九综合va免费看 | 亚拍精品一区二区三区探花 | 在线精品亚洲一区二区 | 国产精品亚洲综合色区韩国 | 亚洲另类伦春色综合小说 | 亚洲欧美日韩成人高清在线一区 | 日本xxxx色视频在线观看免费 | 久久99精品久久久久婷婷 | 日韩精品无码免费一区二区三区 | 久久久久久九九精品久 | 男女作爱免费网站 | 波多野42部无码喷潮在线 | 动漫av网站免费观看 | 少妇无码一区二区二三区 | 最近的中文字幕在线看视频 | 中文字幕av无码一区二区三区电影 | 国产人妻人伦精品1国产丝袜 | 国产精品无码一区二区桃花视频 | 老熟女重囗味hdxx69 | 国产精品无套呻吟在线 | 日韩人妻系列无码专区 | 国产特级毛片aaaaaa高潮流水 | 亚洲中文字幕成人无码 | 一本色道久久综合亚洲精品不卡 | 成 人 网 站国产免费观看 | 少妇被黑人到高潮喷出白浆 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亲嘴扒胸摸屁股激烈网站 | 亚洲国产欧美在线成人 | 久久久中文久久久无码 | 中文字幕日韩精品一区二区三区 | 18禁止看的免费污网站 | 丰满人妻精品国产99aⅴ | 国产成人无码区免费内射一片色欲 | 亚洲精品一区二区三区在线观看 | 俺去俺来也在线www色官网 | 亚洲综合久久一区二区 | 国产成人无码一二三区视频 | 亚洲精品中文字幕久久久久 | 男女爱爱好爽视频免费看 | 麻豆精产国品 | 欧美性猛交内射兽交老熟妇 | 黄网在线观看免费网站 | 欧美色就是色 | 最新版天堂资源中文官网 | 麻豆国产人妻欲求不满谁演的 | 永久免费观看美女裸体的网站 | 四虎国产精品免费久久 | 国产高清av在线播放 | 亚洲国产av美女网站 | 巨爆乳无码视频在线观看 | 国产人妻人伦精品 | 熟女俱乐部五十路六十路av | 一二三四在线观看免费视频 | 国产九九九九九九九a片 | 亚洲一区二区三区无码久久 | 亚洲狠狠婷婷综合久久 | 波多野结衣aⅴ在线 | 国产三级久久久精品麻豆三级 | 久久精品无码一区二区三区 | 精品久久久久久人妻无码中文字幕 | 99视频精品全部免费免费观看 | 国产综合色产在线精品 | 亚洲精品无码人妻无码 | 亚洲精品一区三区三区在线观看 | 最新国产麻豆aⅴ精品无码 | 久久人人爽人人爽人人片ⅴ | 国产欧美熟妇另类久久久 | 麻豆国产人妻欲求不满 | 久久99精品国产麻豆 | 国产国产精品人在线视 | 国内精品一区二区三区不卡 | 精品国产一区二区三区四区在线看 | 亚洲中文字幕av在天堂 | 精品久久久久久人妻无码中文字幕 | 中文字幕乱码中文乱码51精品 | 久久久精品456亚洲影院 | 国产免费观看黄av片 | 超碰97人人做人人爱少妇 | 爆乳一区二区三区无码 | 国产无遮挡又黄又爽免费视频 | 欧美大屁股xxxxhd黑色 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产成人精品优优av | 少妇人妻av毛片在线看 | 精品国产乱码久久久久乱码 | 成年美女黄网站色大免费视频 | 日韩无套无码精品 | 人妻少妇精品无码专区二区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 水蜜桃亚洲一二三四在线 | 久久人人97超碰a片精品 | 最近的中文字幕在线看视频 | 少妇人妻偷人精品无码视频 | 妺妺窝人体色www婷婷 | 成人片黄网站色大片免费观看 | 亚洲国产精品成人久久蜜臀 | 亚洲色成人中文字幕网站 | 美女黄网站人色视频免费国产 | 精品久久久中文字幕人妻 | 久久精品中文字幕一区 | 熟妇人妻激情偷爽文 | 人人澡人人透人人爽 | www国产亚洲精品久久久日本 | 久久精品中文字幕大胸 | 日韩精品久久久肉伦网站 | 免费无码的av片在线观看 | 亚洲高清偷拍一区二区三区 | 久久综合色之久久综合 | 国产成人精品久久亚洲高清不卡 | 国产色视频一区二区三区 | 日韩av无码中文无码电影 | 欧美成人午夜精品久久久 | 久久无码中文字幕免费影院蜜桃 | 国产成人无码区免费内射一片色欲 | 欧美猛少妇色xxxxx | 人妻中文无码久热丝袜 | 青青草原综合久久大伊人精品 | 丰满护士巨好爽好大乳 | 亚洲精品久久久久久久久久久 | 免费人成网站视频在线观看 | 亚洲乱码日产精品bd | 精品国偷自产在线视频 | 精品一区二区三区无码免费视频 | 国产三级久久久精品麻豆三级 | 东京无码熟妇人妻av在线网址 | 欧美人与牲动交xxxx |