日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

C#

前端如何防止数据被异常篡改并且复原数据

發布時間:2023/11/8 C# 47 coder
生活随笔 收集整理的這篇文章主要介紹了 前端如何防止数据被异常篡改并且复原数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每天,我們都在和各種文檔打交道,PRD、技術方案、個人筆記等等等。

其實文檔排版有很多學問,就像我,對排版有強迫癥,見不得英文與中文之間不加空格。

所以,最近在做這么一個谷歌擴展插件 chrome-extension-text-formatting,通過谷歌擴展,快速將選中文本,格式化為符合 中文文案排版指北 的文本。

emmm,什么是排版指南?簡單來說它的目的在于統一中文文案、排版的相關用法,降低團隊成員之間的溝通成本,增強網站氣質。

舉個例子:

中英文之間需要增加空格

正確:

在 LeanCloud 上,數據存儲是圍繞 AVObject 進行的。

錯誤:

在LeanCloud上,數據存儲是圍繞AVObject進行的。

在 LeanCloud上,數據存儲是圍繞AVObject 進行的。

完整的正確用法:

在 LeanCloud 上,數據存儲是圍繞 AVObject 進行的。每個 AVObject 都包含了與 JSON 兼容的 key-value 對應的數據。數據是 schema-free 的,你不需要在每個 AVObject 上提前指定存在哪些鍵,只要直接設定對應的 key-value 即可。

例外:「豆瓣FM」等產品名詞,按照官方所定義的格式書寫。

中文與數字之間需要增加空格

正確:

今天出去買菜花了 5000 元。

錯誤:

今天出去買菜花了 5000元。

今天出去買菜花了5000元。

當然,整個排版規范不僅僅局限于此,上面只是簡單列出部分規范內容。而且,這玩意屬于建議,很難強迫推廣開來。所以,我就想著實現這么一個谷歌插件擴展,一鍵實現選中文本的格式化。

看個示意圖:

適用于各種文本編輯框,當然 Excel 也可以:

當然,這都不是本文的重點。

兼容語雀文檔遇到的異常場景

因為各個文檔平臺存在一定的差異性,所以在擴展的制作過程,需要去兼容不同的文檔平臺(當然,更多的是我自己比較常用的一些文檔平臺,譬如谷歌文檔、語雀、有道云、Github 等等)。

整體來說,整個擴展的功能非常簡單,一個極簡流程如下:

需要注意的是,上面的操作,大部分都是基于插入到頁面的 JavaScript 腳本文件進行執行。

在兼容語雀文檔的時候,遇到了這么個有趣的場景。

在上面的第 4 步執行完畢后,在我們對替換后的文本進行任意操作時,譬如重新獲焦、重新編輯等,被修改的文本都會被進行替換復原,復原成修改前的狀態

什么意思呢?看看下面這張實際的截圖:

總結一下,語雀這里這個操作是什么意思呢?

在腳本手動替換掉原選取文件后,當再次獲焦文本,修改的內容再會被復原

在一番測試后,我理清了語雀文檔的邏輯:

  1. 如果是用戶正常輸入內容,通過鍵盤敲入內容,或者正常的復制粘貼,文檔可以被正常修改,被保存;
  2. 如果文檔內容的修改是通過腳本插入、替換,或者文檔內容的修改是通過控制臺手動修改 DOM,文檔的內容都將會被復原;
  3. 利用腳本對內容進行任意修改后,即便不做任何操作,直接點擊保存按鈕,文檔仍然會被復原為操作前的版本;

Oh,這個功能確實是非常的有意思。它的強悍之處在于,它能夠識別出內容的修改是常規正常操作,還是腳本、控制臺修改等非常規操作。并且在非常規操作之后,回退到最近一次的正常操作版本。

那么,語雀它是如何做到這一點的呢?

由于線上編譯混淆后的代碼比較難以斷點調試,所以我們大膽的猜測一下,如果我們需要去實現一個類似的功能,可能從什么方向入手。

MutationObserver 實現文檔內容堆棧存儲

首先,我們肯定需要用到 MutationObserver。

MutationObserver 是一個 JavaScript API,用于監視 DOM 的變化。它提供了一種異步觀察 DOM 樹的能力,并在發生變化時觸發回調函數。

我們來構建一個在線文檔的最小化場景:

<div id="g-container" contenteditable>
    這是 Web 云文檔的一段內容,如果直接編輯,可以編輯成功。如果使用控制臺修改,數據將會被恢復。
</div>
#g-container {
    width: 400px;
    padding: 20px;
    line-height: 2;
    border: 2px dashed #999;
}

這里,我們利用 HTML 的 contenteditable 屬性,實現了一個可編輯的 DIV 框:

接下來,我們就可以利用 MutationObserver,實現對這個 DOM 元素的監聽,實現每當此元素的內容發生改變,就觸發 MutationObserver 的事件回調,并且通過一個數組,記錄下每一次元素改動的結果。

其大致代碼如下:

const targetElement = document.getElementById("g-container");
// 記錄初始數據
let cacheInitData = '';

function observeElementChanges(element) {
    const changes = []; // 存儲變化的數組
    const targetElementCache = element.innerText;

    // 緩存每次的初始數據
    cacheInitData = targetElementCache;
    
    // 創建 MutationObserver 實例
    const observer = new MutationObserver((mutationsList, observer) => {
        // 檢查當前是否存在焦點
        mutationsList.forEach((mutation) => {
            console.log('observer', observer);
            const { type, target, addedNodes, removedNodes } = mutation;
            let realtimeText = "";
            
            const change = {
                type,
                target,
                addedNodes: [...addedNodes],
                removedNodes: [...removedNodes],
                realtimeText,
            };
            
            changes.push(change);
        });
        
        console.log("changes", changes);
    });

    // 配置 MutationObserver
    const config = { childList: true, subtree: true, characterData: true };

    // 開始觀察元素的變化
    observer.observe(element, config);
}

observeElementChanges(targetElement);

上面的代碼,閱讀起來需要一點點時間。但是其本質是非常好理解的,我大致將其核心步驟列舉一下:

  1. 創建一個 MutationObserver 實例來觀察指定 DOM 元素的變化

  2. 定義一個配置對象 config,用于指定觀察的選項。在這個例子中,配置對象中設置了

    1. childList: true 表示觀察子節點的變化
    2. subtree: true 表示觀察所有后代節點的變化
    3. characterData: true 表示觀察節點文本內容的變化
  3. 將變化的信息存儲在 changes 數組中

  4. changes 數組中的每個元素記錄了一次 DOM 變化的信息。每個變化對象包含以下屬性:

    1. type:表示變化的類型,可以是 "attributes"(屬性變化)、"characterData"(文本內容變化)或 "childList"(子節點變化)。
    2. target:表示發生變化的目標元素。
    3. addedNodes:一個包含新增節點的數組,表示在變化中添加的節點。
    4. removedNodes:一個包含移除節點的數組,表示在變化中移除的節點。
    5. realtimeText:實時文本內容,可以根據具體需求進行設置。

如此一來,我們嘗試編輯 DOM 元素,打開控制臺,看看每次 changes 輸出了什么內容:

可以發現,每一次當 DIV 內的內容被更新,都會觸發一次 MutationObserver 的回調。

我們詳細展開數組中的兩處進行說明:

其中 type 表示這次觸發的是 MutationObserver 配置的 config 中的哪一類變化,命中了 characterData,也就是上面提到的文本內容的變化。而 addedNodesremoveDNodes 都為空,說明沒有結構上的變化。

兩組數據唯一的變化在于 realtimeText 我們利用了這個值記錄了可編輯 DOM 元素內文本值內容。

  • 第一次刪除了一個句號 。,所以 realtimeText 文本相比初始文本少了個句號
  • 二次操作刪除了一個 字,所以 realtimeText 文本相比初始文本少了 復。

后面的數據依次類推??梢钥吹?,有了這個信息,其實我們相當于能夠實現整個 DOM 結構的操作堆棧

在此基礎上,我們可以在整個監聽之前,在 changes 數組中首先壓入最開始未經過任何操作的數據。這也就意味著我們有能力將數據恢復到用戶的操作過程中的任意一步。

利用特征狀態,識別用戶是否是手動輸入

有了上面的changes 數組,我們相當于有了用戶操作的每一步的堆棧信息。

接下的核心就在于我們應該如何去運用它們。

在語雀這個例子中,它的核心點在于:

它能夠識別出內容的修改是常規正常操作,還是腳本、控制臺修改等非常規操作。并且在非常規操作之后,回退到最近一次的正常操作版本。

因此,我們接下來探索的問題就變成了如何識別一個可輸入編輯框,它的內容修改是正常輸入修改,還是非正常輸入修改。

譬如,思考一下,當用戶正常輸入或者復制粘貼內容到編輯框,應該會有什么特征信息:

  1. 可以通過 document.activeElement 拿到當前頁面獲焦的元素,因此可以在每次觸發 Mutation 變化的時,多存儲一份當前的獲焦元素信息,對比內容被修改時的頁面獲焦元素是否是當前輸入框
  2. 嘗試判斷輸入框的獲焦狀態,可以通過監聽 foucsblur 獲焦及失焦等事件進行判斷
  3. 用戶當文本內容改變時,是否有經過觸發過鍵盤事件,譬如 keydown 事件
  4. 用戶當文本內容改變時,是否有經過觸發過鍵盤事件的粘貼 paste 事件
  5. 對于直接修改控制臺,則可能是除了文本內容外,有 DOM 子樹的其他變化,也就是會觸發 Mutation 的 childList 變化事件

有了上面的思路,下面我們嘗試一下,為了盡可能讓 DEMO 好理解,我們稍微簡化需求,實現:

  1. 一個輸入框,用戶正常輸入可以改變內容
  2. 當輸入框內容通過控制臺進行修改,則當元素再次獲焦時,恢復到最近一次的手動修改記錄
  3. 如果(2)找不到最近一次的手動修改記錄,將數據恢復到初始狀態

基于此,下面我給出大致的偽代碼:

<div id="g-container" contenteditable>這是 Web 云文檔的一段內容,如果直接編輯,可以編輯成功。如果使用控制臺修改,數據將會被恢復。</div>
const targetElement = document.getElementById("g-container");
// 記錄初始數據
let cacheInitData = '';
// 數據復位標志位
let data_fixed_flag = false; 
// 復位緩存對象
let cacheObservingObject = null;
let cacheContainer = null;
let cacheData = '';

function eventBind() {
    targetElement.addEventListener('focus', (e) => {        
        if (data_fixed_flag) {
            cacheContainer.innerText = cacheData;
            cacheObservingObject.disconnect();
            observeElementChanges(targetElement);
            
            data_fixed_flag = false;
        }
    });
}

function observeElementChanges(element) {
    const changes = []; // 存儲變化的數組
    const targetElementCache = element.innerText;

    // 緩存每次的初始數據
    cacheInitData = targetElementCache;
    
    // 創建 MutationObserver 實例
    const observer = new MutationObserver((mutationsList, observer) => {
        mutationsList.forEach((mutation) => {
            // console.log('observer', observer);
            const { type, target, addedNodes, removedNodes } = mutation;
            let realtimeText = "";
            
            if (type === "characterData") {
                realtimeText = target.data;
            }
            
            const change = {
                type,
                target,
                addedNodes: [...addedNodes],
                removedNodes: [...removedNodes],
                realtimeText,
                activeElement: document.activeElement
            };
            changes.push(change);
        });
        
        let isFixed = false;
        let container = null;
        
        for (let i = changes.length - 1; i >= 0; i--) {
            const item = changes[i];
            // console.log('i', i);
            if (item.activeElement === element) {
                if (isFixed) {
                    cacheData = item.realtimeText;
                }
                break;
            } else {
                if (!isFixed) {
                    isFixed = true;
                    container = item.target.nodeType === 3 ? item.target.parentElement : item.target;
                    cacheContainer = container;
                    data_fixed_flag = true;
                }
            }
        }
        
        if (data_fixed_flag && cacheData === '') {
            cacheData = cacheInitData;
        }
        
        cacheObservingObject = observer;
    });

    // 配置 MutationObserver
    const config = { childList: true, subtree: true, characterData: true };

    // 開始觀察元素的變化
    observer.observe(element, config);
    eventBind();
    
    // 返回停止觀察并返回變化數組的函數
    return () => {
        observer.disconnect();
        return changes;
    };
}

observeElementChanges(targetElement);

簡單解釋一下,大致流程如下

  1. observeElementChanges 上文已經出現過,核心在于記錄每一次 DOM 元素的變化,將變化內容記錄在 changes 數組中

    1. 多記錄了一個 activeElement,表示每次 DOM 元素發生變化時,頁面的焦點元素
  2. 每次 changes 更新后,倒序遍歷一次 changes 數組

    1. 如果當前頁面獲焦元素與當前發生變化的 DOM 元素不是同一個元素,則認為是一次非法修改,記錄兩個標志位 isFixeddata_fixed_flag,此時繼續向前尋找最近一次正常修改記錄
    2. isFixed 用于向前尋找最近一次正常修改記錄后,將最近一次修改的堆棧信息進行保存
  3. data_fixed_flag 標志位用于當元素被再次獲焦時(觸發 focus 事件),根據標志位判斷是否需要回滾恢復數據

OK,此時,我們來看看整體效果:

這樣,我們就成功的實現了識別非正常操作,并且恢復到上一次正常數據。

當然,實際場景肯定比這個復雜,并且需要考慮更多的細節,這里為了整體的可理解性,簡化了整個 DEMO 的表達。

完整的 DEMO 效果,你可以戳這里體驗:[CodePen Demo -- Editable Text Fixed]

一些思考

至于這個功能有什么用?這個就見仁見智了,至少對于開發擴展插件的我而言,是一個非常棘手的問題,當然從語雀的角度而言,更多也許是從安全方面進行考量的。

當然,我們不應該局限于這個場景,思考一下,這個方案其實可以應用在非常多其它場景,舉個例子:

  1. 前端頁面水印,實現當水印 DOM 的樣式、結構、或者內容被篡改時,立即進行水印恢復

當然,破解起來也有一些方式,對于擴展插件而言,我可以通過更早的向頁面注入我的 content script,在頁面加載渲染前,對全局的 MutationObserver 對象進行劫持。

總而言之,可以通過本文提供的思路,嘗試進行更多有意思的前端交互限制。

最后

好了,本文到此結束,希望對你有幫助 ??

想 Get 到最有意思的 CSS 資訊,千萬不要錯過我的公眾號 -- iCSS前端趣聞 ??

更多精彩 CSS 技術文章匯總在我的 Github -- iCSS ,持續更新,歡迎點個 star 訂閱收藏。

如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

總結

以上是生活随笔為你收集整理的前端如何防止数据被异常篡改并且复原数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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

黄色a在线观看 | 成人蜜桃| 91.麻豆视频 | av高清不卡 | 免费在线观看视频一区 | 欧美在线视频日韩 | 久久精品视频5 | 国产乱对白刺激视频在线观看女王 | 国产 一区二区三区 在线 | 又黄又爽又无遮挡免费的网站 | 久草在线中文视频 | av三级在线免费观看 | 国产伦精品一区二区三区无广告 | 91av蜜桃| 亚洲美女精品视频 | 丁香花中文字幕 | 91免费的视频在线播放 | 99自拍视频在线观看 | 亚洲精品午夜国产va久久成人 | 欧美日韩国语 | 在线视频麻豆 | 国产午夜精品理论片在线 | 国产视频一区二区在线 | 免费观看视频黄 | 视频一区二区免费 | 五月天综合网站 | 免费在线观看毛片网站 | 精品96久久久久久中文字幕无 | 国产剧情一区在线 | 国产露脸91国语对白 | 1024在线看片 | 999久久久久久| 国产精品福利av | 国产一线二线三线在线观看 | 日日操操操 | 久久一区国产 | 久久国语露脸国产精品电影 | 国内精品久久久久影院优 | 91麻豆高清视频 | 国产原创中文在线 | 国产成人综 | 91在线播放国产 | 麻花天美星空视频 | av片中文| 久久精品一区二区 | 91欧美精品 | 狠狠操综合 | 少妇18xxxx性xxxx片 | 国产成人av在线 | 成人免费xxxxxx视频 | 国产亚洲精品久久久久久久久久久久 | 中文字幕在线观看国产 | 国产一区二区免费看 | 国产录像在线观看 | 国产福利91精品 | 国产精品欧美一区二区三区不卡 | 日韩欧美视频在线播放 | 8x成人免费视频 | 我要看黄色一级片 | 久久伊人91 | 亚洲涩涩一区 | 久草视频在线新免费 | 天天操天天干天天操天天干 | 色片网站在线观看 | 天天撸夜夜操 | 深爱激情av | 成人久久毛片 | 中日韩在线| www.亚洲激情.com | 久久久久久高清 | 国产资源在线观看 | 九九热在线观看 | 久久久久成人免费 | 亚洲精品免费观看 | 黄色av大片 | 色婷婷欧美 | 国产精品理论片在线播放 | 精品国产乱子伦一区二区 | 成人三级网站在线观看 | 久久成人综合 | 国产精品毛片完整版 | 911久久 | 麻豆 91 在线 | 久草国产在线观看 | 国产日韩在线视频 | 成人性生交大片免费观看网站 | 操少妇视频 | 成人午夜黄色 | 婷婷中文字幕综合 | 人人插人人爱 | 深夜国产在线 | 国产v亚洲v | 日韩婷婷| 韩日视频在线 | av高清不卡 | 97国产超碰在线 | 欧美日韩国产精品一区二区三区 | 免费在线精品视频 | 天天激情综合网 | 欧美激情第一区 | 欧美日韩精品在线视频 | av一本久道久久波多野结衣 | 成人在线观看免费视频 | 2019久久精品 | 久久手机看片 | 91麻豆精品国产91久久久无限制版 | 国产精品午夜在线观看 | 特级a毛片| 久久久免费毛片 | 久久亚洲精品电影 | 色94色欧美 | 四虎成人精品永久免费av九九 | 国产视频91在线 | 免费在线观看日韩视频 | 久久精品国产一区 | 深爱激情开心 | 国内外成人在线视频 | 女人18毛片a级毛片一区二区 | 欧女人精69xxxxxx | 久久一区精品 | 97人人超碰在线 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲精品国产精品乱码在线观看 | 黄色国产在线 | 五月天中文字幕mv在线 | 黄网站色欧美视频 | 精品国产一区二区三区av性色 | 一区二区不卡高清 | 激情六月婷婷久久 | 国产黑丝一区二区三区 | 国产精品自产拍在线观看桃花 | 久久极品 | a视频免费在线观看 | 超碰资源在线 | 天天做天天爱天天综合网 | 国产美女免费看 | 国产精品久久久久永久免费观看 | 不卡av电影在线 | 亚洲精品成人av在线 | 婷婷在线网站 | 91最新视频在线观看 | 日韩高清不卡在线 | 亚洲资源网 | 91在线精品视频 | av亚洲产国偷v产偷v自拍小说 | 国产精品亚洲片在线播放 | 美女久久久久久久 | 成人精品国产免费网站 | 日韩在线在线 | 国产精品美女久久久久aⅴ 干干夜夜 | 97色国产| 久久综合久久久久88 | 操综合 | 欧美日韩一区二区视频在线观看 | 国产在线美女 | 中文字幕色综合网 | 粉嫩av一区二区三区四区 | 日韩精品在线观看av | 国产第一福利 | 美女网站黄在线观看 | 国产精品福利小视频 | av福利免费 | 激情五月婷婷综合 | 成人免费视频网站在线观看 | 99 国产精品| 精品久久久久亚洲 | 91精品国产91| 国产精品免费久久久久影院仙踪林 | 91av国产视频 | 日本精品视频在线播放 | 97视频免费在线观看 | 国产视频精品网 | 日韩av手机在线看 | 日韩视频在线播放 | 日韩欧美专区 | 精品国产一区二区三区久久久久久 | 日韩在线观看第一页 | 国产91精品看黄网站在线观看动漫 | 午夜精品一区二区三区在线视频 | 91黄色影视 | 日日夜夜91 | 日韩有色 | 91精品国产网站 | 成人av一二三区 | 久久综合影视 | 网站在线观看你们懂的 | 香蕉影视在线观看 | 97超碰在线视 | 免费毛片aaaaaa | 在线观看91视频 | 黄网站色欧美视频 | 看av在线| 国产精品久久久久久久久久久免费 | 免费福利影院 | 丰满少妇对白在线偷拍 | 中文字幕在线观看一区二区 | 亚洲精品国产精品国 | 亚洲欧洲国产日韩精品 | 国产精品成人免费 | 九九一级片 | 欧美另类高清 videos | 五月天综合网站 | 丁香婷婷电影 | 欧美永久视频 | 99性视频 | 精品一区 精品二区 | 午夜视频免费在线观看 | 中文字幕一区在线 | 97国产小视频 | 欧美精品久久久久久久久久 | 色多多在线观看 | 中文字幕丝袜美腿 | 色播五月激情综合网 | 国产麻豆精品在线观看 | 最近免费观看的电影完整版 | 九九爱免费视频在线观看 | 亚洲成人影音 | 日韩精品中文字幕在线观看 | 51久久成人国产精品麻豆 | 国产精品理论片在线播放 | 久久综合之合合综合久久 | 久久人人爽人人爽人人 | 天天综合色 | 色综合久久精品 | a级黄色片视频 | 成人免费 在线播放 | 操操色| 成人午夜精品久久久久久久3d | 免费人成在线观看网站 | 天天操天天爱天天干 | 国产一区二区综合 | 免费成人av | 久久电影中文字幕视频 | 国产美女视频免费观看的网站 | 91亚洲精品乱码久久久久久蜜桃 | 欧美激情视频一区二区三区 | 97福利视频| 97人人爽人人 | 婷色在线 | 欧美一区免费观看 | 久久av在线 | 久久久国产精品成人免费 | 日韩免费视频一区二区 | 色婷婷成人网 | 在线观看午夜 | 天天摸日日摸人人看 | 一区二区高清在线 | 久久字幕网 | 日韩av电影一区 | 天堂av网址 | 久草在线视频免费资源观看 | 亚洲国产中文字幕在线视频综合 | 久久久久国产免费免费 | 国产精品欧美久久久久久 | 欧美国产在线看 | 久久综合免费 | 蜜臀一区二区三区精品免费视频 | 91经典在线| 夜夜骑首页 | 五月天中文字幕mv在线 | 亚洲国产精彩中文乱码av | a级片韩国 | 久久久久久久久久久免费 | www.狠狠插.com| 人人插人人艹 | 国产精品成人aaaaa网站 | 三级av在线播放 | 96精品视频 | 国产一级不卡视频 | 亚洲精品视频在 | 国产精品久久久久永久免费 | 亚洲精品免费看 | 久久综合九色 | 国产精品久久一 | 91精品亚洲影视在线观看 | 久久久电影网站 | 国产精品不卡在线观看 | 激情影音先锋 | 特级西西444www大精品视频免费看 | 欧美最新大片在线看 | 五月婷在线 | 欧美日韩在线观看一区二区三区 | 最近中文字幕高清字幕免费mv | 国产99在线 | 干干日日| 欧美精品亚州精品 | 国产专区视频在线观看 | 国产999精品久久久久久绿帽 | 日韩免费观看一区二区三区 | 日韩字幕在线观看 | 夜夜狠狠 | 亚洲日本在线视频观看 | 久色免费视频 | 手机看片中文字幕 | 久久一区91 | 久久久99精品免费观看乱色 | 中文字幕在线一二 | 国产婷婷精品av在线 | 亚洲免费一级 | 国产精品久久久久久久久免费看 | 人人爽人人香蕉 | 日韩av免费在线电影 | 婷婷亚洲综合五月天小说 | 一区二区欧美激情 | 国产高清视频色在线www | 色婷婷国产精品一区在线观看 | 国产在线播放一区二区 | 日韩欧美精品一区二区 | 天堂在线视频中文网 | av免费观看高清 | 精品久久久久久综合日本 | 精品欧美一区二区三区久久久 | 91av免费看 | 在线观看视频中文字幕 | 国产精品无 | 亚洲视屏在线播放 | 国产手机在线观看视频 | 亚洲国产精彩中文乱码av | 久久久久网址 | 91精品国产乱码在线观看 | 国产精品久久久久久久婷婷 | 91av社区| 草久在线视频 | www.午夜视频 | 国产一区二区中文字幕 | 国产不卡av在线播放 | 欧美精品在线观看一区 | 国产国语在线 | 一本一本久久aa综合精品 | 国产精品免费在线视频 | 色在线高清 | 久久久久久久久久久久久久电影 | 在线观看黄色免费视频 | 青青河边草观看完整版高清 | 一区二区三区在线视频111 | 色射爱 | 久久天天躁狠狠躁夜夜不卡公司 | 手机看片国产 | bbbbb女女女女女bbbbb国产 | 免费情缘 | 麻豆精品在线视频 | 久久99精品久久久久久三级 | 中文字幕一区二区三区精华液 | 日韩高清免费在线 | 国产视频久 | 国产午夜一级毛片 | 久久久免费av | 在线观看中文字幕一区二区 | 美女福利视频一区二区 | a视频在线观看 | 91传媒在线| 久草在线官网 | 中文字幕xxxx | 久久久久黄色 | 久久夜夜操 | 99精品免费视频 | 久久爱导航 | 亚洲九九九在线观看 | 亚洲精品啊啊啊 | 亚洲激情 欧美激情 | www.99av| 午夜精品一区二区三区在线 | 成人午夜电影网站 | 懂色av懂色av粉嫩av分享吧 | 免费观看十分钟 | 香蕉在线视频观看 | 国产视频网站在线观看 | 丁香激情综合国产 | 伊人国产女 | 国产成人精品综合久久久久99 | 国产成人精品免费在线观看 | 中文字幕在线播放一区二区 | 久久久久久久久久影院 | 在线免费视频a | 天天看天天操 | www视频在线免费观看 | av线上免费看 | 人人爽人人爽人人爽 | 中文字幕在线高清 | 色网站国产精品 | 人人涩 | 激情欧美丁香 | 中文字幕色婷婷在线视频 | 美女免费视频黄 | 亚洲国产精品500在线观看 | 国产日韩三级 | 99在线热播精品免费 | 黄色小说免费观看 | 久久人人添人人爽添人人88v | 精品视频www | 久久综合婷婷国产二区高清 | 一区 在线观看 | 亚洲h在线播放在线观看h | 国产高清久久久久 | av中文在线观看 | 国产二级视频 | 精品av网站| 欧美日韩a视频 | 亚洲v精品 | 欧美日韩视频精品 | 国产精品美女久久久 | 日韩精品中文字幕久久臀 | 91精品秘密在线观看 | 国产黄色播放 | 久久久久一区 | 婷婷伊人五月 | 人人爽人人射 | 色午夜| 91九色视频在线观看 | 97色在线视频 | 在线免费观看视频你懂的 | 国产黄免费看 | 国产色道 | 麻豆一级视频 | 国产精品18久久久久久vr | 99久久国产免费看 | 中文字幕国产精品 | 久久草网 | 五月天电影免费在线观看一区 | 国内精品在线看 | 亚洲欧洲久久久 | 丁香六月av | 免费在线播放av电影 | 天堂av高清 | 国产一区二区在线观看免费 | 麻豆视屏| 伊人伊成久久人综合网小说 | 最新99热 | 狠狠狠色丁香综合久久天下网 | av中文字幕剧情 | 免费黄色a网站 | 日韩高清二区 | 国产精品原创av片国产免费 | 99热在线国产 | 国产 日韩 中文字幕 | 国产最新在线 | 毛片在线网 | 最近久乱中文字幕 | 国产精品午夜av | 久久久久福利视频 | 久久精品99国产精品日本 | 日韩免费成人 | 久久天堂网站 | 少妇资源站 | 久草在线手机视频 | 天天视频亚洲 | 久久久久久蜜av免费网站 | 国产一区二区精品久久91 | 国产精品视频999 | 国产日本亚洲 | 综合久久久 | 99精品国产一区二区三区麻豆 | 成人一级片视频 | 一区二区三区四区五区在线 | 精品视频专区 | 99c视频高清免费观看 | 操久在线| 99久久久久国产精品免费 | 久草国产在线观看 | 亚洲国产精品日韩 | 不卡日韩av | www.av免费 | 色欧美88888久久久久久影院 | 欧美 另类 交 | 欧美另类交人妖 | 日韩欧美久久 | 久久久久国产精品免费 | 色天天综合久久久久综合片 | av专区在线 | 日本狠狠干| 天天色天天操综合 | 亚洲欧美va| 亚洲综合色婷婷 | 久久国产精品免费观看 | 欧美一级片免费在线观看 | 亚洲综合干| 91九色蝌蚪国产 | 日韩毛片精品 | 欧美在线你懂的 | av性在线| 最新国产在线视频 | 日韩激情视频在线观看 | 天天综合网 天天 | 亚洲午夜久久久久久久久久久 | 国产高清视频在线免费观看 | 99爱视频在线观看 | 精品国产成人在线影院 | 欧美日韩国产欧美 | 国产电影一区二区三区四区 | 午夜精品久久久久久久99 | 最新超碰在线 | 亚洲欧洲av | 91探花系列在线播放 | 午夜久久精品 | 在线观看av免费观看 | 91中文字幕在线 | 久久精品资源 | 色婷婷国产精品一区在线观看 | 少妇高潮流白浆在线观看 | 婷婷激情五月综合 | 中文字幕免费高清av | 99久久综合精品五月天 | 99国产在线 | 天天干天天射天天爽 | 天天干夜夜| 九九精品无码 | 成片免费观看视频 | 日韩高清av在线 | 99国产情侣在线播放 | 国产精品淫片 | 一区二区国产精品 | 国产在线中文字幕 | 久久免费99精品久久久久久 | 免费久久久久久 | 国产美女免费观看 | 天天爽天天做 | av大全在线免费观看 | 欧美一区二区三区在线 | 日韩免费一级电影 | 日本精品久久久一区二区三区 | 美女网站色在线观看 | 99视频国产精品 | 中文字幕精品久久 | 国产亚洲精品中文字幕 | 久久黄色影院 | 国产九色视频在线观看 | 久久精品这里都是精品 | 玖草影院 | 丰满少妇一级 | 久草在线观看资源 | 精品久久久999| 日本中文字幕影院 | 成人免费在线播放视频 | 国产视频 久久久 | 久久久久久久久久久久av | 麻豆国产精品永久免费视频 | 二区在线播放 | 国产成人高清在线 | 成人网大片 | 婷婷国产在线 | 一区二区伦理 | 久久久久免费精品视频 | 在线观看午夜 | 欧美在线观看视频免费 | 在线免费试看 | 欧美黄色高清 | 99热亚洲精品 | 国产亚洲婷婷免费 | 人人揉人人揉人人揉人人揉97 | 欧美成人猛片 | 蜜臀av性久久久久av蜜臀三区 | 免费黄色网止 | 天天操夜夜摸 | 午夜精品一二区 | 日韩精品一区二区三区丰满 | www.天天综合 | 国内精品久久久精品电影院 | 亚洲天堂激情 | 国产精品成人免费 | 精品久久久免费 | 亚洲在线网址 | 欧美日韩在线观看一区二区三区 | 国产精品福利无圣光在线一区 | 91福利免费| 亚洲婷婷免费 | 欧美精品一区二区三区一线天视频 | 日韩a欧美 | 国产在线 一区二区三区 | 91精品免费在线 | 久久精品国产成人精品 | 国产精品一区久久久久 | 色小说在线 | 国产一区在线免费观看视频 | 久久国产系列 | 欧美日韩国产一区二区在线观看 | 99热精品在线 | 亚洲精品a区 | 久久国产精品视频 | 免费久久视频 | 91日韩在线专区 | 国产你懂的在线 | 日本成人a | 日韩激情三级 | 九九激情视频 | 免费午夜在线视频 | 四虎成人精品在永久免费 | 国产成a人亚洲精v品在线观看 | 国产美女免费看 | 一级片免费在线 | 丁香视频五月 | 欧美成年人在线视频 | 超碰人人做| 最新中文字幕在线观看视频 | 精品国产_亚洲人成在线 | 中文字幕在线观看日本 | 午夜婷婷在线观看 | 婷婷国产一区二区三区 | 久久人人爽人人片 | 中文字幕在线第一页 | 九九爱免费视频在线观看 | 在线观看涩涩 | 国产精品精品久久久久久 | 麻豆传媒视频在线播放 | 干天天| 免费成人在线网站 | 欧美日韩aaaa| 欧美日韩亚洲在线 | 亚洲日本在线视频观看 | 99久视频| 五月激情久久久 | 久久天天躁夜夜躁狠狠85麻豆 | 欧美污在线观看 | 人人干人人干人人干 | 91人网站 | 在线播放 日韩专区 | 成人免费视频播放 | 丁香六月婷婷开心婷婷网 | 欧美性生活免费看 | 久久免费电影网 | 色婷婷亚洲婷婷 | 在线亚洲激情 | 中文字幕文字幕一区二区 | 91在线视频在线 | 超碰97免费 | 国产中文字幕视频在线观看 | 精品一区二区免费 | 日韩av男人的天堂 | 亚洲国产成人av网 | 亚洲综合网站在线观看 | 欧美精品一区二区蜜臀亚洲 | 国语久久 | 中文永久免费观看 | 色网站免费在线观看 | 精品女同一区二区三区在线观看 | 岛国av在线免费 | 9在线观看免费高清完整版在线观看明 | 天天干天天做天天爱 | 中文字幕乱在线伦视频中文字幕乱码在线 | 99精品视频网站 | 91精品久久久久久久久 | 国产精品a级| 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产超碰在线观看 | 人人超碰在线 | 色吧久久| 香蕉在线影院 | 911香蕉视频 | 最近最新中文字幕 | 国产视频精品久久 | 久久综合桃花 | 99久国产 | 天天狠狠操 | 国模精品一区二区三区 | 色综合中文综合网 | 最近中文字幕高清字幕在线视频 | 91人人揉日日捏人人看 | 国产精品一区二区三区在线播放 | 亚洲精品色视频 | 欧美午夜精品久久久久久孕妇 | 色综合中文综合网 | 欧美人zozo | 欧美一级特黄高清视频 | 9在线观看免费高清完整版 玖玖爱免费视频 | 久久99久久99精品中文字幕 | 久久久久9999亚洲精品 | 欧美一级大片在线观看 | 三级黄色理论片 | 国产精品美女久久久久久久网站 | 不卡电影一区二区三区 | 精品久久国产精品 | 精品电影一区 | 国产一区二区在线视频观看 | 亚洲一级黄色大片 | 在线欧美a | 免费观看久久 | 91传媒视频在线观看 | 久操中文字幕在线观看 | 日本三级在线观看中文字 | 超碰av在线 | 国产亚洲情侣一区二区无 | 很黄很黄的网站免费的 | 成人免费视频网址 | 2019天天干夜夜操 | 97超视频 | 日韩美女av在线 | 免费久久精品视频 | 天天综合婷婷 | 精品在线观 | 香蕉久久久久 | 久久久国产一区 | 青青草在久久免费久久免费 | 视频在线播放国产 | 成人在线免费视频观看 | 国产色影院 | 五月婷婷视频 | 亚洲婷久久| 在线亚洲高清视频 | 欧美日韩久久不卡 | 日韩午夜av | 一区二区三区影院 | 欧美日韩国产二区三区 | 亚洲精选视频免费看 | 免费国产黄线在线观看视频 | 九九在线免费视频 | 亚洲成av人片一区二区梦乃 | 91最新视频在线观看 | 丁香婷婷久久久综合精品国产 | 香蕉视频在线网站 | 日韩在线 一区二区 | 精品一区二区影视 | 99久久9| 91丨精品丨蝌蚪丨白丝jk | 天堂av免费看 | 激情视频网页 | 久久久片 | 免费看一级| 九九免费在线观看 | 日产乱码一二三区别免费 | 久久这里 | 欧美精品一区二区蜜臀亚洲 | 久久人人爽爽 | 国产录像在线观看 | 91热这里只有精品 | 男女视频91 | 亚洲精品乱码久久久久久 | 亚洲午夜精品在线观看 | 黄色网址在线播放 | 成人免费网站视频 | 88av视频| 99精品免费久久久久久日本 | 操操碰| 精品久久91 | 在线播放日韩av | 黄色的网站免费看 | 成人在线观看资源 | www.黄色片网站 | 99热这里有精品 | 91看成人| 亚洲春色综合另类校园电影 | 国产成人精品av在线 | 亚洲精品中文在线 | 天天干天天拍天天操 | 婷婷av资源| 2021国产在线视频 | 色噜噜在线观看视频 | 99视频精品视频高清免费 | 黄色免费网站下载 | 91成人在线观看高潮 | 亚洲黄色片一级 | 国产97视频 | 精品久久福利 | 91精品天码美女少妇 | 欧美日韩国内在线 | 日韩午夜av | 亚洲精品视频第一页 | 成人性生活大片 | 美女啪啪图片 | 中文日韩在线 | 狠狠操综合网 | 一区二区三区中文字幕在线 | www.97色.com| 91最新在线观看 | 国产精品日韩在线播放 | 丝袜av网站 | 少妇精品久久久一区二区免费 | 国产小视频在线免费观看视频 | 色视频 在线 | 日韩精品三区四区 | 国产中文字幕一区二区 | 五月天婷婷视频 | 欧美日韩精品在线 | www免费看片com | 午夜12点| 亚洲欧美国产日韩在线观看 | 亚洲午夜久久久综合37日本 | av一区二区三区在线播放 | 天天操天天操天天操 | 欧美黄色免费 | 国产精品视频久久久 | 精品视频中文字幕 | 欧美日韩中文国产一区发布 | 亚洲精品ww | 欧美精品国产精品 | 99国内精品久久久久久久 | 国产精品区免费视频 | 美女网站视频色 | 久久国产视频网站 | 91九色视频在线 | 国内精品久久久久影院日本资源 | 中文字幕有码在线播放 | 日韩电影中文字幕在线 | 99综合影院在线 | 色欧美88888久久久久久影院 | 国产精品国产自产拍高清av | 午夜国产一区二区三区四区 | 亚洲精品日韩在线观看 | 啪啪凸凸 | 久久99久久99精品免观看粉嫩 | 国产精品美女免费看 | 一区二区三区电影 | 96av麻豆蜜桃一区二区 | av三级在线免费观看 | 亚洲一区二区精品 | 一区二区三区四区免费视频 | 999国内精品永久免费视频 | 天天插天天操天天干 | 91麻豆.com | 欧美小视频在线 | 日韩av在线高清 | 在线电影日韩 | av丝袜制服 | 久久精品999 | 国产精品高潮在线观看 | 99一区二区三区 | 亚洲黄色在线免费观看 | 在线成人高清电影 | 在线观看国产www | 亚洲日本成人 | 91网在线 | 五月综合在线观看 | 成人小视频在线 | 国产91精品看黄网站在线观看动漫 | 国产欧美精品一区二区三区四区 | 久久久久久久国产精品 | 久久99偷拍视频 | 在线视频欧美日韩 | 一区二区三区高清在线观看 | 一区二区三区在线免费观看视频 | 国产香蕉视频在线观看 | 99视频在线精品免费观看2 | 欧美在线18 | 毛片激情永久免费 | 成人羞羞视频在线观看免费 | 久久国产免费视频 | 日韩亚洲在线观看 | 1024在线看片| 久久精品亚洲国产 | 欧美性猛片| 久久精品国产成人精品 | 一区二区三区高清在线观看 | 欧美久久久久久久久久 | 国产精品日韩 | 激情在线免费视频 | 久久精视频 | 黄色软件在线观看免费 | 国产精品毛片久久久 | 在线国产精品一区 | 91麻豆精品国产自产在线游戏 | 欧美色综合天天久久综合精品 | 六月婷婷色| 欧美大片大全 | 天天操 夜夜操 | 狠狠躁日日躁狂躁夜夜躁 | 97超碰人人澡人人 | 久久夜色精品国产欧美乱 | 91九色蝌蚪在线 | 激情一区二区三区欧美 | 中国一级片免费看 | 国产精品福利在线播放 | 亚洲成年片| 国产精品一区二区三区久久久 | 免费在线激情电影 | 亚洲黄色精品 | 日韩精品在线看 | 911久久香蕉国产线看观看 | 婷婷伊人综合 | 色网站在线看 | 久一在线 | 亚洲a在线观看 | 视频国产精品 | 国产精品第10页 | 特级a毛片| 在线影院 国内精品 | 麻豆影视在线播放 | 成人中文字幕av | 国产亚洲日 | 国产手机精品视频 | 久久精品精品电影网 | 日韩一级精品 | 99久久这里只有精品 | 日韩精品一区二区三区第95 | 欧美一区二区精美视频 | 一本—道久久a久久精品蜜桃 | 午夜精品电影 | 超碰97久久 | 日韩高清不卡一区二区三区 | 丁香婷婷综合色啪 | 国产精品久久久久999 | 欧美日韩国产在线精品 | 超碰av在线播放 | 91资源在线观看 | 久草电影免费在线观看 | 国产精品久久9 | 97精品超碰一区二区三区 | 99久久国产免费看 | 久久久久欠精品国产毛片国产毛生 | 亚洲va欧洲va国产va不卡 | 国产亚洲精品xxoo | 久久人91精品久久久久久不卡 | 国产一区在线视频播放 | 日韩欧美视频一区 | 999久久久久 | av亚洲产国偷v产偷v自拍小说 | 亚洲精品国产精品国 | 日本女人在线观看 | 午夜精品一区二区三区在线 | 最近免费中文字幕大全高清10 | 免费在线播放视频 | 亚洲电影院 | 日日草av | 国产免费a | 亚洲人成网站精品片在线观看 | 日韩精品中文字幕在线不卡尤物 | 插插插色综合 | 黄色软件在线观看 | 中文字幕av免费在线观看 | 黄色网址在线播放 | 2019中文最近的2019中文在线 | 操久在线 | 激情综合网五月婷婷 | 中文字幕999 | 亚洲成人欧美 | 狠狠的日 | 91天堂素人约啪 | 四虎小视频 | 日韩欧美xxx | 色姑娘综合天天 | 国产精品久久久久免费观看 | 97在线观视频免费观看 | 久久久资源 | 999精品| 99精品在线直播 | 色福利网 | 激情影音 | 国外调教视频网站 | 精品国产自 | 日日爱网址 | 伊人手机在线 | 91麻豆国产福利在线观看 | 国产一区二区在线观看免费 | 欧美精品在线观看一区 | 精品福利片 | 久久综合九色综合97_ 久久久 | 日韩欧美在线不卡 | 天天射天天做 | 超碰在线91| 日韩在线观看一区二区三区 | 99精品视频在线观看免费 | 久久久免费观看 | 欧美 亚洲 另类 激情 另类 | 91精品国产一区二区三区 | 中文在线8资源库 | 国产小视频在线看 | 国产日韩视频在线观看 | 夜夜躁日日躁狠狠躁 | 国产黄色精品在线 | 蜜臀av一区二区 | 亚洲成色777777在线观看影院 | 狠狠狠狠狠狠狠 | 日韩综合在线观看 | 日韩精品亚洲专区在线观看 | 91伊人影院| 成人久久网 | 久久久精品国产一区二区 | 99热9| 天天插狠狠干 | 久久艹在线观看 | 五月婷婷综合在线 | 韩国视频一区二区三区 | 亚洲综合在线五月天 | 日本久久成人 | 亚洲欧美日韩国产 | 四虎成人精品永久免费av | 国产精品99久久久久久久久 | 国产999视频在线观看 | 国产香蕉97碰碰碰视频在线观看 | 欧美国产日韩一区二区 | 成人精品国产 | 97视频人人 | 日韩二级毛片 | 日本福利视频在线 | 日日夜夜天天综合 | 久久成人高清 | 天天操网站| 国产97在线视频 | 亚洲综合网站在线观看 | 一级欧美一级日韩 | 97狠狠干| 久久福利国产 | 国产剧情一区二区 | 97色视频在线 | 色视频在线观看 | 国产精品va在线 | 成av在线| www在线观看视频 | 久久国产高清视频 | 天天草天天干天天 | aaa毛片视频 |