亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

PHP留言板安全開發(fā):從SQL注入到XSS的全鏈路防護(hù)筆記

PHP留言板安全開發(fā):從SQL注入到XSS的全鏈路防護(hù)筆記 安全開發(fā)筆記做到第22天話題輪到了一個(gè)既基礎(chǔ)又容易翻車的東西PHP留言板。也許有人覺得留言板太小兒科了路由、接口、緩存、消息隊(duì)列才是生產(chǎn)級(jí)但真實(shí)情況恰好相反。留言板幾乎是Web安全攻防的濃縮樣本一個(gè)表單進(jìn)來經(jīng)過超全局變量接收落到數(shù)據(jù)庫(kù)再原路吐回頁面中間還夾著會(huì)話狀態(tài)和第三方組件。這一圈走下來如果每一層都沒有邊界處理普通的一句話都能把站打穿。這次筆記我想把留言板當(dāng)載體重新梳理PHP安全開發(fā)的幾個(gè)核心命題超全局變量的使用邊界、數(shù)據(jù)庫(kù)操作里的參數(shù)化查詢、第三方插件引入的風(fēng)險(xiǎn)控制以及一個(gè)完整的留言板功能從設(shè)計(jì)到上線的安全加固流程。適合正在學(xué)Web安全開發(fā)的人也適合寫過PHP但沒系統(tǒng)性想過“數(shù)據(jù)從哪來到哪去、該在哪設(shè)防”的開發(fā)者。不要急著寫功能先把數(shù)據(jù)流和安全邊界想清楚。下面是我整理出來的完整筆記。1. 為什么留言板項(xiàng)目在安全開發(fā)里地位這么高很多初學(xué)者問我的第一句話是安全開發(fā)為什么不講一個(gè)更復(fù)雜的系統(tǒng)比如電商、CMS非要拿留言板說事我的回答是留言板是唯一一個(gè)能用較短時(shí)間講完“輸入到處理、存儲(chǔ)到輸出”完整閉環(huán)的項(xiàng)目而且每個(gè)環(huán)節(jié)都有現(xiàn)實(shí)攻擊案例。電商系統(tǒng)的大頭在業(yè)務(wù)邏輯權(quán)限留言板的大頭在通用安全基線后者才是安全開發(fā)的地基。留言板這個(gè)形態(tài)幾乎覆蓋了一個(gè)Web應(yīng)用最常見的攻擊面用戶提交的數(shù)據(jù)會(huì)進(jìn)數(shù)據(jù)庫(kù)有注入面會(huì)展示給其他人有XSS面會(huì)觸發(fā)管理操作有CSRF和越權(quán)面還會(huì)拉動(dòng)周邊資源比如富文本編輯器、驗(yàn)證碼庫(kù)、Markdown解析器引入第三方插件后就有了供應(yīng)鏈面。一個(gè)看似簡(jiǎn)單的“寫一條留言、展示一條留言”如果只做功能不修安全整體脆弱性比一個(gè)結(jié)構(gòu)復(fù)雜的后臺(tái)系統(tǒng)還高。更關(guān)鍵的是留言板的數(shù)據(jù)流非常清晰適合建立安全開發(fā)思維模型。不管以后做API、小程序后端還是管理平臺(tái)你都要回答這幾個(gè)問題用戶輸入到了哪個(gè)超全局變量經(jīng)過哪些過濾函數(shù)以什么方式進(jìn)入SQL以什么方式渲染到前端第三方依賴是否可信這套思維模型一旦建立換什么框架、換什么語言都能復(fù)用。所以寫留言板寫的不是留言板本身而是把每個(gè)開發(fā)者腦子里那根數(shù)據(jù)邊界的弦接上。1.1 留言板牽出的六層風(fēng)險(xiǎn)清單我習(xí)慣在動(dòng)手前把風(fēng)險(xiǎn)點(diǎn)列一遍相當(dāng)于給項(xiàng)目畫風(fēng)險(xiǎn)地圖。留言板對(duì)應(yīng)的風(fēng)險(xiǎn)層大概是六層入口層超全局變量的使用不規(guī)范導(dǎo)致參數(shù)來源混淆或變量覆蓋。校驗(yàn)層對(duì)數(shù)據(jù)類型、長(zhǎng)度、字符集缺少約束臟數(shù)據(jù)直接進(jìn)入業(yè)務(wù)邏輯。存儲(chǔ)層SQL語句拼接用戶輸入形成注入點(diǎn)。輸出層用戶內(nèi)容未經(jīng)編碼直接輸出形成存儲(chǔ)型XSS。會(huì)話層身份認(rèn)證和CSRF防護(hù)缺失管理操作可被偽造。供應(yīng)鏈層第三方插件帶版本漏洞或惡意代碼拖垮整個(gè)應(yīng)用。后面的所有工作本質(zhì)上是讓這六層風(fēng)險(xiǎn)降到可控范圍。帶著這張清單去看后面的章節(jié)思路會(huì)順很多。1.2 一句話概括今天的目標(biāo)今天的目標(biāo)不是做一個(gè)演示用的Hello留言板而是做一個(gè)有基礎(chǔ)抗攻擊能力的留言板能防SQL注入、能防存儲(chǔ)型XSS、能防CSRF、能控制第三方插件的引入風(fēng)險(xiǎn)。這個(gè)標(biāo)準(zhǔn)看著不高但很多存量項(xiàng)目其實(shí)一條都沒做到。2. PHP超全局變量每一個(gè)入口都可能被投毒PHP開發(fā)里最常用的就是超全局變量但大多數(shù)人只把它們當(dāng)成拿參數(shù)的盒子沒人想過這些盒子里的數(shù)據(jù)是帶著敵意的。這一節(jié)把每個(gè)超全局變量的角色和風(fēng)險(xiǎn)邊界過一遍。2.1 超全局變量全家桶與數(shù)據(jù)來源PHP常用的超全局變量有8個(gè)留言板場(chǎng)景里至少會(huì)碰到6個(gè)。我直接用表格梳理一下變量名數(shù)據(jù)來源在留言板里的角色$_GETURL查詢字符串分頁參數(shù)、搜索關(guān)鍵字$_POSTHTTP請(qǐng)求體表單字段留言內(nèi)容、用戶名、郵箱、CSRF Token$_REQUESTGET與POST合并不推薦使用見下文$_COOKIECookie頭登錄令牌通常是會(huì)話ID$_SESSION服務(wù)端會(huì)話存儲(chǔ)登錄狀態(tài)、CSRF Token、限流計(jì)數(shù)器$_SERVER服務(wù)端環(huán)境客戶端IP、User-Agent、請(qǐng)求方法$_FILES文件上傳字段留言板頭像如果做上傳功能$_ENV環(huán)境變量應(yīng)用配置這里單說 $_REQUEST。很多老代碼喜歡用它一把梭既能接GET又能接POST省事。但問題就出在省事上它把數(shù)據(jù)來源搞混了當(dāng)GET和POST同時(shí)出現(xiàn)同名參數(shù)時(shí)$_REQUEST 的優(yōu)先級(jí)在不同的PHP配置下還不一樣出了問題排查難度直接拉高。安全開發(fā)的第一原則是來源清晰誰敢把多個(gè)入口混成一個(gè)誰就在給后續(xù)維護(hù)埋雷。所以我自己的代碼里只用 $_GET 和 $_POST不用 $_REQUEST。2.2 超全局變量里常見的三個(gè)坑第一個(gè)坑是 $_SERVER[PHP_SELF]。它本身是服務(wù)器生成的腳本路徑看起來應(yīng)該安全但實(shí)際上可以被URL污染。如果在地址欄構(gòu)造一個(gè)包含XSS payload的路徑部分場(chǎng)景下直接輸出 PHP_SELF 就會(huì)觸發(fā)反射型XSS。處理辦法有兩種要么用 $_SERVER[SCRIPT_NAME] 替代要么在輸出時(shí)做 htmlspecialchars 編碼。第二個(gè)坑是變量覆蓋。有些老框架和遺留代碼喜歡用 extract($_POST) 把用戶提交的參數(shù)直接變成同名PHP變量或者用 $$id 這種動(dòng)態(tài)變量拼接。這看起來是省了代碼實(shí)際上用戶可以通過構(gòu)造參數(shù)名來覆蓋程序里原有的變量。早期PHP圈出過一批這類漏洞基本都跟超全局變量被暴力展開有關(guān)?,F(xiàn)在寫代碼我是一律不建議用這種寫法顯式從超全局變量取值再校驗(yàn)是最笨但最穩(wěn)的做法。第三個(gè)坑是默認(rèn)信任。很多人拿到 $_POST[content] 就認(rèn)為它是字符串實(shí)際上對(duì)方提交的可能是數(shù)組比如構(gòu)造 content[]xxx賦值行為就會(huì)異常甚至在某些參數(shù)化過程不嚴(yán)格的代碼里繞過過濾。判斷類型比判斷值更優(yōu)先取值后先用 is_string、is_numeric 這類函數(shù)做類型確認(rèn)再談長(zhǎng)度和格式校驗(yàn)。2.3 超全局變量的安全使用規(guī)范我給自己定了三條規(guī)矩基本能覆蓋90%的入口風(fēng)險(xiǎn)第一只從明確的超全局變量取值不同時(shí)混用GET和POST語義。GET只承載獲取類參數(shù)POST只承載變更類參數(shù)。第二所有超全局變量里的值一律視為不可信輸入先做類型校驗(yàn)再做白名單校驗(yàn)最后做長(zhǎng)度限制。第三不要在業(yè)務(wù)代碼里直接輸出超全局變量要么編碼后輸出要么轉(zhuǎn)存到經(jīng)過處理的局部變量里。配合這三條規(guī)范超全局變量從任意數(shù)據(jù)入口變成了嚴(yán)格受控的數(shù)據(jù)渡口攻擊面瞬間就小了一半。3. 數(shù)據(jù)庫(kù)操作留言數(shù)據(jù)的安全存儲(chǔ)通道留言板數(shù)據(jù)量不大但如果處理不好一條SQL注入就能讓整個(gè)數(shù)據(jù)庫(kù)裸奔。這個(gè)章節(jié)重點(diǎn)講PDO的使用方式和參數(shù)化查詢的底層邏輯。3.1 為什么用PDO而不是MySQLiPHP連MySQL的主流方案是兩個(gè)MySQLi和PDO。我的選擇是PDO原因有三第一PDO提供統(tǒng)一的抽象層以后要換數(shù)據(jù)庫(kù)引擎改動(dòng)成本低。第二PDO支持服務(wù)端的預(yù)處理語句開啟方式明確。第三PDO的錯(cuò)誤處理模式可以通過 PDO::ATTR_ERRMODE 統(tǒng)一設(shè)置成異常模式代碼里更好控錯(cuò)。MySQLi不是不能用只是它的預(yù)處理和結(jié)果集處理相對(duì)啰嗦在安全設(shè)置上需要手工關(guān)注的點(diǎn)更多。團(tuán)隊(duì)里新人多的時(shí)候PDO的規(guī)范約束力更強(qiáng)。3.2 連接層配置里的三個(gè)安全點(diǎn)數(shù)據(jù)庫(kù)連接的DSN和PDO選項(xiàng)是最容易被忽略的安全位置。很多人隨手把連接參數(shù)寫出來就完事結(jié)果在三個(gè)點(diǎn)上埋了雷。第一個(gè)點(diǎn)是字符集。連接字符串里必須帶 charsetutf8mb4而且要放在DSN里不能只靠SQL里的 SET NAMES。如果數(shù)據(jù)庫(kù)連接字符集是latin1目標(biāo)表又是UTF-8一旦遇到特定編碼的注入payload就可能出現(xiàn)寬字節(jié)注入問題。把字符集固定下來是防御這一類注入的第一道閘門。第二個(gè)點(diǎn)是關(guān)閉本地模擬預(yù)處理。PDO默認(rèn)會(huì)嘗試用本地模擬預(yù)處理這會(huì)導(dǎo)致即便寫了占位符最終還是可能走字符串拼接再發(fā)到服務(wù)端當(dāng)PHP版本或驅(qū)動(dòng)有差異時(shí)仍然存在注入風(fēng)險(xiǎn)。連接參數(shù)里寫 PDO::ATTR_EMULATE_PREPARES false強(qiáng)制走M(jìn)ySQL服務(wù)端的原生預(yù)處理這是關(guān)鍵安全開關(guān)。第三個(gè)點(diǎn)是錯(cuò)誤信息不落地。開啟 PDO::ATTR_ERRMODE PDO::ERRMODE_EXCEPTION然后在整個(gè)調(diào)用鏈最外層統(tǒng)一捕獲異常記錄到日志絕不把PDOException的message直接展示給用戶。很多注入探測(cè)就是從數(shù)據(jù)庫(kù)報(bào)錯(cuò)開始的把報(bào)錯(cuò)隱藏掉等于把偵察路徑堵了一半。3.3 參數(shù)化查詢?yōu)槭裁茨軗踝QL注入很多人會(huì)背“參數(shù)化查詢防SQL注入”但說不出原理。我用一句話解釋預(yù)處理語句在發(fā)送到數(shù)據(jù)庫(kù)時(shí)SQL語句的結(jié)構(gòu)和參數(shù)是分開的兩個(gè)通道。數(shù)據(jù)庫(kù)先解析了SQL結(jié)構(gòu)把它當(dāng)成模板之后參數(shù)只是按類型填入的數(shù)據(jù)值。也就是說即使用戶輸入的內(nèi)容是 OR 11它也不會(huì)被當(dāng)成SQL語法去解析而只是一個(gè)字符串字面量。結(jié)構(gòu)是結(jié)構(gòu)數(shù)據(jù)是數(shù)據(jù)兩條通道隔離注入自然失效。寫法的差別也很直觀。拼接式寫法是$sql SELECT * FROM messages WHERE id . $_GET[id];參數(shù)化寫法是$stmt $pdo-prepare(SELECT * FROM messages WHERE id ?); $stmt-execute([$_GET[id]]);兩種寫法在功能上好像差不多但本質(zhì)差了一個(gè)維度前者把用戶數(shù)據(jù)融進(jìn)了SQL語法樹后者把用戶數(shù)據(jù)限制在了參數(shù)位。在留言板的所有SQL操作里我都用參數(shù)化寫法一條拼接都不用。3.4 bindParam 的經(jīng)典坑PDO的預(yù)處理支持 bindParam 和 bindValue 兩種綁定方式實(shí)測(cè)中有一個(gè)坑特別經(jīng)典。bindParam 綁定的是變量引用它不是在上一次bind那一刻取值的而是在 execute 的時(shí)候才取值。如果在循環(huán)里一直復(fù)用同一個(gè)變量并且反復(fù) execute最后一次循環(huán)的變量值會(huì)被所有 execute 使用。比如下面這種寫法就翻過車foreach ($dataList as $item) { $stmt-bindParam(:id, $item[id]); $stmt-execute(); }因?yàn)?$item[id] 是引用綁定每次 execute 前變量值已經(jīng)被下一次循環(huán)覆蓋最后所有行都更新成同一批ID。安全上可能不直接翻車但業(yè)務(wù)正確性就毀了。我的建議是不折騰 bindParam直接在 execute 括號(hào)里傳參數(shù)數(shù)組。$stmt-execute([:id $item[id]])又清晰又穩(wěn)。安全代碼最怕花活越直白的寫法越不容易出錯(cuò)。4. 第三方插件引入拿來主義的代價(jià)都在暗處留言板做到一定階段就會(huì)出現(xiàn)一個(gè)誘惑富文本編輯器丑裝一個(gè)吧驗(yàn)證碼不想自己寫引個(gè)庫(kù)吧Markdown想讓格式更漂亮再拉個(gè)解析器吧。沒有問題插件本身是提升效率的好東西但你必須知道引入一個(gè)第三方插件等于把一段別人的代碼放進(jìn)了你的信任邊界。4.1 留言板里最容易引入的三類插件第一類是富文本編輯器。它功能強(qiáng)但歷史包袱也重。不少富文本編輯器都出過文件上傳漏洞攻擊者可以利用上傳接口在服務(wù)器上放一個(gè)可執(zhí)行的腳本文件。第二類是驗(yàn)證碼庫(kù)。長(zhǎng)期停止維護(hù)的驗(yàn)證碼組件會(huì)有幾個(gè)問題圖形驗(yàn)證碼的強(qiáng)度弱、缺少音頻干擾、甚至存在被繞過的手段。第三類是Markdown解析器。如果解析器沒有做HTML過濾被注入的Markdown代碼在轉(zhuǎn)換后會(huì)把XSS帶進(jìn)頁面。這三類插件有一個(gè)共同特點(diǎn)看似只是前端工具實(shí)際都會(huì)觸及后端處理邏輯這就是風(fēng)險(xiǎn)放大的根源。4.2 插件選型的檢查清單我現(xiàn)在引入第三方插件前會(huì)強(qiáng)制自己過一遍清單共七項(xiàng)從官方渠道獲取優(yōu)先使用包管理工具安裝便于鎖定版本。固定版本號(hào)并把鎖定文件提交到版本庫(kù)防止依賴漂移。對(duì)下載包做校驗(yàn)和核對(duì)包管理工具自帶的hash驗(yàn)證要開啟。到公開漏洞庫(kù)查詢這個(gè)插件是否有已知高危漏洞??错?xiàng)目維護(hù)狀態(tài)最近一次提交是什么時(shí)間是否還有安全公告渠道。裁剪功能用不到的上傳、模板、演示文件全部刪掉。跑一次最小化測(cè)試只保留實(shí)際業(yè)務(wù)要用的路徑。清單看著繁瑣但真正發(fā)生供應(yīng)鏈問題的時(shí)候你會(huì)發(fā)現(xiàn)這七步每一條都是在救命的。4.3 插件權(quán)限最小化與部署隔離插件引入之后還要注意給它關(guān)權(quán)限。很多編輯器自帶上傳功能默認(rèn)上傳目錄放在Web根目錄里上傳文件直接可訪問。不做限制的話攻擊者一旦繞過文件類型檢查就能直接執(zhí)行腳本。我的做法是上傳目錄獨(dú)立出來只存儲(chǔ)文件禁止執(zhí)行腳本上傳目錄的PHP執(zhí)行權(quán)限在Web服務(wù)器層面直接關(guān)掉編輯器用不到的那些接口文件在部署時(shí)刪除插件依賴的數(shù)據(jù)庫(kù)賬號(hào)用獨(dú)立最小權(quán)限賬號(hào)不給DROP、GRANT這類高危權(quán)限。插件可以幫你干活但不給它鑰匙庫(kù)的鑰匙。這個(gè)原則推廣到整個(gè)留言板也一樣數(shù)據(jù)庫(kù)賬號(hào)不要用root要單獨(dú)建一個(gè)只對(duì)留言數(shù)據(jù)庫(kù)有增刪查改權(quán)限的賬號(hào)。權(quán)限最小化永遠(yuǎn)是安全開發(fā)的核心思維。5. 從零開始實(shí)現(xiàn)一個(gè)帶安全基線的留言板理論說多了都是空的進(jìn)入實(shí)操。我把留言板分成四個(gè)模塊實(shí)現(xiàn)每個(gè)模塊都會(huì)給出帶注釋的PHP代碼并解釋為什么這么寫。5.1 表結(jié)構(gòu)設(shè)計(jì)先建表。留言板業(yè)務(wù)只要一張 messages 表就夠但字段要夠用管理功能后面都要靠它。CREATE TABLE messages ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(30) NOT NULL, email VARCHAR(100) NOT NULL, content TEXT NOT NULL, ip VARCHAR(45) NOT NULL, user_agent VARCHAR(255) NOT NULL, status TINYINT NOT NULL DEFAULT 1, created_at DATETIME NOT NULL, PRIMARY KEY (id), KEY idx_status_created (status, created_at) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;幾個(gè)設(shè)計(jì)點(diǎn)說明一下。status 字段用來標(biāo)記留言審核狀態(tài)未過審的留言不對(duì)外展示這是內(nèi)容安全的兜底。ip 字段用 VARCHAR(45) 存雙棧地址IPv6 的地址長(zhǎng)度也能放下。user_agent 字段不是必須的但留一個(gè)可以用于異常分析比如短時(shí)間內(nèi)同一UA加同一IP高頻發(fā)言就可以快速識(shí)別刷屏行為。5.2 發(fā)表留言模塊發(fā)表留言是數(shù)據(jù)入口攻擊者最關(guān)注這里。整個(gè)流程是校驗(yàn)CSRF Token然后校驗(yàn)輸入格式再做頻率限制最后寫入數(shù)據(jù)庫(kù)。提交處理的完整代碼session_start(); if (strtoupper($_SERVER[REQUEST_METHOD]) ! POST) { exit(非法訪問); } // 1. CSRF校驗(yàn) if (!hash_equals($_SESSION[csrf_token] ?? , $_POST[csrf_token] ?? )) { exit(CSRF校驗(yàn)失敗); } // 2. 輸入校驗(yàn) $username trim((string)($_POST[username] ?? )); $email trim((string)($_POST[email] ?? )); $content trim((string)($_POST[content] ?? )); if ($username || mb_strlen($username) 30) { exit(用戶名不能為空且不能超過30字); } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { exit(郵箱格式不正確); } if ($content || mb_strlen($content) 2000) { exit(留言內(nèi)容不能為空且不能超過2000字); } // 3. 頻率限制同一IP在60秒內(nèi)只能留言一次 $key gb_limit_ . md5($_SERVER[REMOTE_ADDR]); $last (int)($_SESSION[$key] ?? 0); if (time() - $last 60) { exit(留言過于頻繁請(qǐng)稍后再試); } $_SESSION[$key] time(); // 4. 參數(shù)化寫入 $ip $_SERVER[REMOTE_ADDR]; $ua substr((string)($_SERVER[HTTP_USER_AGENT] ?? ), 0, 254); $dsn mysql:host127.0.0.1;port3306;dbnameguestbook;charsetutf8mb4; $options [ PDO::ATTR_ERRMODE PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES false, ]; $pdo new PDO($dsn, gb_user, yourpassword, $options); $stmt $pdo-prepare( INSERT INTO messages (username, email, content, ip, user_agent, status, created_at) VALUES (?, ?, ?, ?, ?, 1, ?) ); $stmt-execute([ $username, $email, $content, $ip, $ua, date(Y-m-d H:i:s), ]); header(Location: list.php); exit;這段代碼把前面幾章的理念全部落地了。CSRF校驗(yàn)用的是 hash_equals 做時(shí)間安全比較比普通等號(hào)判斷更防側(cè)信道。輸入校驗(yàn)全部走白名單式的長(zhǎng)度和格式判斷。頻率限制用會(huì)話變量做標(biāo)記簡(jiǎn)單但有效想要更強(qiáng)的限制可以把記錄存到數(shù)據(jù)庫(kù)或內(nèi)存緩存。為什么CSRF校驗(yàn)必須放在最前面因?yàn)槿绻茸鰳I(yè)務(wù)判斷再校驗(yàn)Token攻擊者可以通過觀察不同的響應(yīng)時(shí)間差來判斷Token是否正確這等于給了側(cè)信道攻擊機(jī)會(huì)。先校驗(yàn)Token再處理業(yè)務(wù)錯(cuò)誤提示統(tǒng)一攻擊者就無從分辨了。5.3 留言展示模塊留言展示是輸出側(cè)重點(diǎn)解決存儲(chǔ)型XSS。讀取數(shù)據(jù)用參數(shù)化查詢輸出內(nèi)容要經(jīng)過 htmlspecialchars 編碼一個(gè)地方都不能漏。$page max(1, (int)($_GET[page] ?? 1)); $perPage 10; $offset ($page - 1) * $perPage; $stmt $pdo-prepare( SELECT username, email, content, created_at FROM messages WHERE status 1 ORDER BY created_at DESC LIMIT ? OFFSET ? ); $stmt-bindValue(1, $perPage, PDO::PARAM_INT); $stmt-bindValue(2, $offset, PDO::PARAM_INT); $stmt-execute(); $rows $stmt-fetchAll();注意這里用了 bindValue 綁定 LIMIT 和 OFFSET是因?yàn)?PDO 的 execute 傳數(shù)組時(shí)默認(rèn)會(huì)把值當(dāng)成字符串而 LIMIT 語句里必須明確是整型不然在嚴(yán)格模式下會(huì)報(bào)錯(cuò)。取數(shù)據(jù)只用參數(shù)化查詢配合 status1 過濾未審核留言。輸出的核心代碼foreach ($rows as $row) { echo h3 . htmlspecialchars($row[username], ENT_QUOTES, UTF-8) . /h3; echo p . htmlspecialchars($row[content], ENT_QUOTES, UTF-8) . /p; echo p . htmlspecialchars($row[created_at], ENT_QUOTES, UTF-8) . /p; }為什么用 htmlspecialchars 加 ENT_QUOTES因?yàn)閱我?hào)和雙引號(hào)都會(huì)被轉(zhuǎn)成實(shí)體在HTML上下文里就沒有構(gòu)造屬性、事件注入的機(jī)會(huì)。還有一點(diǎn)編碼時(shí)一定要指定 UTF-8否則默認(rèn)編碼可能導(dǎo)致實(shí)體轉(zhuǎn)換失敗等于防護(hù)失效。5.4 后臺(tái)管理模塊管理功能只有一個(gè)需求查看和刪除留言。不要小看這么簡(jiǎn)單的后臺(tái)權(quán)限和CSRF一個(gè)都不能少。session_start(); // 管理員身份校驗(yàn) if (!isset($_SESSION[admin]) || $_SESSION[admin] ! true) { exit(無權(quán)限訪問); } if (strtoupper($_SERVER[REQUEST_METHOD]) POST) { if (!hash_equals($_SESSION[csrf_token] ?? , $_POST[csrf_token] ?? )) { exit(CSRF校驗(yàn)失敗); } $id (int)($_POST[id] ?? 0); if ($id 0) { exit(無效的留言ID); } $stmt $pdo-prepare(DELETE FROM messages WHERE id ?); $stmt-execute([$id]); }刪除操作用的還是參數(shù)化查詢。在后臺(tái)模塊里我加了一層身份校驗(yàn)確保只有管理員會(huì)話可以執(zhí)行刪除操作。管理頁面的表單里也要帶CSRF Token防止其他頁面的構(gòu)造請(qǐng)求冒充管理員刪除數(shù)據(jù)。這個(gè)模塊還隱含一個(gè)越權(quán)判斷刪除操作的權(quán)限校驗(yàn)放在POST分支之內(nèi)任何人只要能發(fā)起POST請(qǐng)求都要先通過身份和Token校驗(yàn)。順序是先認(rèn)證再授權(quán)再執(zhí)行業(yè)務(wù)三步缺一不可。6. 安全驗(yàn)證清單與測(cè)試方法功能寫完不算完安全開發(fā)必須走到驗(yàn)證環(huán)節(jié)。我有一套自己常用的測(cè)試用例表發(fā)布前過一遍能攔住絕大多數(shù)低級(jí)漏洞。6.1 十個(gè)必測(cè)用例整理成表格方便直接拿去用用例操作方法判定標(biāo)準(zhǔn)基礎(chǔ)SQL注入在留言內(nèi)容里提交單引號(hào)和典型閉合語句頁面正常顯示數(shù)據(jù)庫(kù)無異常報(bào)錯(cuò)存儲(chǔ)型XSS提交帶script標(biāo)簽的HTML內(nèi)容頁面原樣顯示為文本不執(zhí)行腳本屬性型XSS提交帶onerror事件的img標(biāo)簽輸出時(shí)屬性轉(zhuǎn)義事件不觸發(fā)CSRF驗(yàn)證移除表單Token后再次提交提交被拒絕越權(quán)刪除非管理員會(huì)話直接POST刪除接口返回?zé)o權(quán)限提示超長(zhǎng)輸入提交超過2000字的內(nèi)容被長(zhǎng)度校驗(yàn)攔截類型注入把content字段提交為數(shù)組形式被類型校驗(yàn)攔截分頁注入修改page參數(shù)為非法字符串取整兜底頁面不報(bào)錯(cuò)頻率刷屏短時(shí)間連續(xù)提交多條留言被限流攔截編碼繞過提交UTF-16或特殊空白字符統(tǒng)一按UTF-8編碼后正常顯示這里特別說一下編碼繞過。很多過濾邏輯只過濾了普通英文引號(hào)和括號(hào)但如果應(yīng)用和數(shù)據(jù)庫(kù)的字符集處理不一致攻擊者可以利用寬字節(jié)payload繞過。解決方法就是前面說的連接層強(qiáng)制UTF-8所有輸出指定UTF-8兩端字符集對(duì)齊后這類繞過基本失效。6.2 自動(dòng)化檢查三件套人工測(cè)試能覆蓋主流程但還是建議配自動(dòng)化檢查。我最常用的三件套第一php -l 做語法檢查排除低級(jí)語法錯(cuò)誤。第二用包含常見payload的請(qǐng)求集做回歸測(cè)試每次改代碼后跑一遍。第三開啟應(yīng)用層的訪問日志和數(shù)據(jù)庫(kù)慢查詢?nèi)罩驹跍y(cè)試環(huán)境里模擬攻擊流量觀察異常。這三件套不復(fù)雜但足以攔住絕大多數(shù)因?yàn)樯暇€前倉(cāng)促導(dǎo)致的低級(jí)問題。7. 常見問題排查與踩坑實(shí)錄到這里代碼和測(cè)試都講完了最后聊聊實(shí)操中一定會(huì)遇到的幾個(gè)問題。7.1 為什么表單提交后CSRF Token總是失效這是寫CSRF最容易遇到的問題。排查路徑一般是先看 session_start 有沒有在任何輸出之前調(diào)用再看表單里的Token是否來自同一個(gè)會(huì)話很多人會(huì)在兩個(gè)頁面分別生成新Token導(dǎo)致表單頁Token和校驗(yàn)頁Token不一致最后看跳轉(zhuǎn)邏輯如果提交后刷新頁面Token已經(jīng)被消費(fèi)或過期也會(huì)出現(xiàn)校驗(yàn)失敗。我的處理方式是Token在會(huì)話里只存一份表單和校驗(yàn)都讀同一個(gè)值提交成功后可以注銷Token要求刷新頁面重新生成避免重放攻擊。7.2 為什么留言內(nèi)容明明過濾了還是有XSS過濾了還是有XSS多半是輸出側(cè)出了問題。很多人只過濾了輸入側(cè)覺得壞東西已經(jīng)進(jìn)不來了卻忘了存儲(chǔ)型XSS的觸發(fā)點(diǎn)在輸出。如果過濾用的還是黑名單式正則防得住 script 標(biāo)簽但防不住 img 的 onerror、svg 的 onload、甚至CSS背景圖注入。解決方案是輸入側(cè)做邏輯校驗(yàn)輸出側(cè)做統(tǒng)一轉(zhuǎn)義兩條線同時(shí)存在互不替代。不要把輸出編碼的活全部交給輸入過濾因?yàn)檩敵鼍幋a才是真正的最后防線。7.3 頁面把數(shù)據(jù)庫(kù)錯(cuò)誤信息給用戶看到了怎么辦報(bào)錯(cuò)信息泄露是開發(fā)階段常見但上線前容易漏的坑?,F(xiàn)象是用戶提交異常數(shù)據(jù)后頁面直接打印SQL錯(cuò)誤里面會(huì)帶表名、字段名甚至查詢片段這些信息會(huì)幫助攻擊者快速定位數(shù)據(jù)庫(kù)結(jié)構(gòu)。處理辦法是把PDO設(shè)置為異常模式后在入口位置統(tǒng)一捕獲異常錯(cuò)誤詳情記錄到日志頁面只顯示友好的通用提示。線上環(huán)境把 display_errors 關(guān)掉日志級(jí)別保持 error這樣既能排查問題又不會(huì)把內(nèi)幕暴露給外部。7.4 引入插件后網(wǎng)站變慢變卡怎么定位第三方插件導(dǎo)致性能問題的排查思路比較直接。第一步是看請(qǐng)求日志找到耗時(shí)最長(zhǎng)的請(qǐng)求第二步是確認(rèn)該請(qǐng)求是否進(jìn)了插件目錄第三步是檢查插件是否有數(shù)據(jù)庫(kù)查詢或遠(yuǎn)程請(qǐng)求。多數(shù)卡頓是因?yàn)椴寮诿看握?qǐng)求時(shí)都執(zhí)行了無關(guān)的初始化代碼。我的建議是能靜態(tài)化的靜態(tài)化能懶加載的懶加載。留言列表頁用不著加載編輯器的時(shí)候就不要加載那幾百KB的腳本。功能最小化不僅為了安全也為了性能一舉兩得。寫到這里今天的留言板安全開發(fā)筆記算是閉環(huán)了。從超全局變量到數(shù)據(jù)庫(kù)操作從第三方插件引入到CSRF防護(hù)每個(gè)環(huán)節(jié)我都盡量把“為什么”背后的原理講清楚。我在實(shí)際動(dòng)手過程里最大的感觸是安全開發(fā)不是某一招特別華麗而是每個(gè)環(huán)節(jié)都堅(jiān)持看似枯燥的規(guī)范來源明確、邊界清晰、權(quán)限最小、輸出編碼、參數(shù)化查詢。這些規(guī)范單拎出來都平平無奇但串在一起攻擊面就被壓縮得很干凈。最后再分享一個(gè)小技巧每次寫完一個(gè)功能都試著站在攻擊者的角度問自己一個(gè)問題——如果我是攻擊者我會(huì)怎么打這個(gè)功能順著這個(gè)角度走一遍很多漏洞根本不用掃描器就能自己暴露出來。留言板只是一個(gè)起點(diǎn)帶著這套思維去做下一個(gè)項(xiàng)目你會(huì)發(fā)現(xiàn)自己寫的代碼越來越難打。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天添天天干电影| www.婷婷| 中文字幕人妻色偷偷久久皮| 日韩免费在线视频观看| 九九九国产精品| 久久激情视频| 久久激情亚洲精品无码?V| 18精品一二区| 日韩 女同 综合| 日韩99999色| 极品极品色影院| 91热热色| 亚洲婷婷丁香在线| 97伊人网| 亚洲成人在线高清| 粉嫩在线一区二区懂色| 五月丁香在线| 亚洲 欧美 小说| 久久9免费视频| 欧美黄业| 围产精品一区二区三区视频播放| 色情婷婷| 久久日本熟女精品一区| 这里只有97精品| 樱花蜜乳av| 在线国产探花| 日本一二三高清| 91M一社| 亚洲欧美日韩偷拍色图| 日本国产欧美高清在线| 精品美女人人干| 第一高清av中文字幕| 美女高潮视频91| 欧美日韩性爱精品| 爽爽爽免费视频| 九九性爱网| 国产av波波国产精品| 日韩av免费一级电影| 九九九九九九九精品视频| 久久只有精品| 日韩欧美水蜜桃人妻| 大香蕉碰碰| 玖玖爱视频网站| 色欲三区| 九九九精品美女| 嫩草美女久久| www.狠狠干.coom | 成年女人黄网站| 性爱Av免费| 精品中文字幕一区二区| 九一精品牛牛一区二区| 深夜国产福利| 色久综合| 91亚洲网| 天天综合麻豆视频| 北野未奈加勒比av| 丝袜剧情| 国产国产亚洲一二三久久| 亚洲自拍另类丝袜综合| www.色五月| 成人三级片一区二区三区视频| yiqicaoav| 久久9亚洲| 伊人操你| 黑人中出21连凳花野真衣| www.av家庭乱伦| 黑人天8A∨高清网站| 久久久久久久久久久免费精品| 国产农村妇女精品一| 亚洲欧洲日韩天堂av| 亚码人妻| 国产97色在线| 无码乱人伦中文视频| 亚洲精品1区| 色色激情| 99999re| 日日干日日操五月天伦理视频| 欧洲性爱无码区| 男人精品天堂一区| 欧美拳交在线播放| 色牛牛AV| 在线免费观看高清无码视频| 久久精品免费| 欧美亚洲情色| 中字幕人妻一区二区三区| 99这里只有精品| 国产黄色 A 片免费看| 青草一区二区| 亚洲国产福利视频| 偷拍亚洲视频一区二区三区四区| 蜜桃视频一区二区三区| 亚洲免费成人在线高清无码视频| 久久久新亚洲AV| 免费在线视频97| 亚洲 欧美 精品专区 极品| 啊啊啊啊啊啊啊啊视频| 日本高清视频xxxx| 国产成人天堂| 欧洲精品二区| 黄色香蕉视频网站一区| 亚洲黄色AV电影| 欧美在线播放aaaa| 综合亚洲情色| 黑人精品成人一区二区三区| 日韩另类色图| 久操免费在线| 热久久无毒不卡| 久日综合网| 日韩少妇无吗| 久久色一区二区| www.99热| 欧美人妻二区三区| 国产精品第一页国产大屁股视频免费区| 我想要啊 啊 啊| 91精品老女人| 黄页大片在线观看| 亚洲成人AB| 欧美综合传媒| 性久久久| 绑缚麻绳人妻寝取完整版| 看日韩操逼| 日韩免费在线视频观看| 91精品国产综合久久久蜜臀| 天天综合色| 影音先锋日本一区二区| 熟妇精品juliaannAV| 亚洲天堂2020| 三级日本一区二区三区| 色天堂在线观看| 抽插无码高清一区| 欧美色图自拍| 97在线视频网站| 葡萄牙性视频一二区| 嗯嗯啊好大| 91久久精品国产| 青青青草原| 亚欧国产无码精品在线| 日韩美一区| 亚洲色图大香| 欧美成人性爱视频免费观看 | 色天堂在线观看| 91欧美偷拍| 中文有码第五页| 9九九九九视频在线观看| 97婷婷色| 大香蕉碰碰| 67914亚洲精品| 自拍欧美| com 首页 18岁 禁区 女优 免费 精选 同城 | 熟妇高潮二区三区| 97人人色| 男人的天堂Va| 97超碰中文在线| 国产欧美精选激情视频| 欧亚性爱在线视频| 中国操逼无码| 无码乱人伦中文视频| 欧美精品自慰系列寂寞少妇| 无码免费一区二区三区啪啪| 嫩草影院永久在线制服丝袜| 狠操91,com| 老熟妇一区二区三区啪啪| 欧洲精品一二三在线| 人夜夜精品网站香蕉嫩草| a人欧美综合天堂麻豆| 久热网| 色哟哟av| 国产精品白丝在线播放| 120分钟婬片免费看| 亚洲精品aa久久伊人| 丝袜大香蕉| 精品人妻一区二区三区-国产| 久久久精品久久| 毛片一区二区| 吖在线不卡一区二区国产剧情| 亚洲砖码砖专无区2023| 久久只有精品一区二区三区| 超碰成人公开| 日韩精品资源专区二区| WWW4虎| 日韩欧美久久婷婷网站| 色官网色综合| 神马久久69| 一本久道久久综合狠狠爱一密臀精| 日本高清免费一本视频在线观看| 国产操逼视频在线观看| 99综合| 麻豆色99999| 浓厚中出中文字幕在线| 99re只有精品| www.色五月| 99精品视频在线观看免费| 婷婷五月天综合网| 国产精品午夜福利| 人人扣人人操| 操久久久久| 国产精品探花在线| 日本一级不卡一二区| 综合五月婷婷亚洲一区| 中文字幕精品亚洲熟女| 欧美系列在线一区二区| 精品人妻伦一区二区三区久久| 国产乱伦亚洲| 偷拍综合亚洲| 亚洲91在线播放影院| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 另类图片五月天| 亚洲清纯唯美| 亚洲精品三| 久久精品无码熟妇一区二区三区视频导航| 大屁股xxxxx| 国产97色在线 | 亚洲| 免费毛片在线播放| 少妇激情一区二区三区视频| 天天操天天射青青草| 久久六六| 骚逼一区二区| 蜜桃无码AV一区二区| 视频在线97| 偷窥自拍亚洲天堂网爆| 91啪啪| 97操97色| 久久狠狠色噜噜狠狠狠狠97| 一区二区三区黄色片a| 日韩中文字幕av在线播放| A级毛片在线看免费| 三级网站超变态精品| 欧美成人四级在线播放| 久久久性爱| 丁香五月天婷婷姐| 留下AⅤ黄色片| 97久操| 亚州操操穴网| 免费观看的黄色的网站| 亚洲影视综合| 91黑丝操| 色性荡荡荡荡视频| 久久精品店| 999国产精品999久久久久久| 1区2区3区中文字幕日韩| 欧美专区日本专区| 精品欧美日韩在线观看| 综合九九| 欧美午夜精品久久久久久超碰| 欧美一级黄色免费专区| 97操B| 日韩在线97| 久久丁香五月婷婷| 亚洲一区操| 国产97av| 色综合20p| 天天天天干| 九九综合久久中文字幕| 射久久| 欧美中字不卡| 九九热五区| 亚卅熟女乱色| 日逼视频日本| 一二三区操逼国产91| 欧亚揄拍偷拍精品视频 | 亚洲爽图| 日韩无码服务区| 欧美一级欧美三级在线观看| 婷婷五月天福利| 亚一综合久久久久久久久久| 国产在线综合网| 91久久国产精品| 啊啊啊快操我视频| 日本不卡高清免v欧美日韩在线观看| 亚洲最新中文字幕免费| 国产精品福利视频播放| 日韩在线观看三级电影| 国产熟女无套内射| 好一吊区二区| 精久久久| 欧美一二级| 蜜臀AV成人精品蜜臀| 日韩亚洲美女一区久久| 一区二区偷拍拍视频| 色婷婷九月天天综合| 久久久久亚洲三级电影| 色波多| 亚洲熟女av中文字幕| 无卡一区=区| 欧美日本天堂| 99久在线精品99re8a| 熟女中出视频| 色999偷自拍拍| 国产人妻精品久久久一区二区三区 | 欧美不在线| 人人九九精| 中文字幕人乱码中文字的预防方法| 99999久久久久9国产精品| 久久久久久国产精品| 翔田千里av一区二区三区| 人妻日日干| 狠日操| 天天操夜夜嗨| 日本色色网| 91久久久久久| 手机av天堂久久久久| 亚州精人品大香蕉| 日韩在线女优天天干| 人妻啊啊人妻啊啊| 粉嫩AV一区夜夜嗨| 99福利社| 综合第一页| 中文字幕精品乱码| 色成人Www精品永久观看| 青椒国产97在线熟女| 美女尤物人人操| 国产大学生口爆吞精合集| 综合操逼| 精品女人999| 国产精品久久发布| 99re只有精品| 超碰在线1234区| 色天天野狼综合社区| 91熟女丨老女人| 男人天堂电影院| 日日干天天干夜夜爽| AA级电影三区| 久久肏大逼| 中亚精品极乱| 色眯眯av| 人妻丝袜二区| 亚洲好看强奸乱伦| 伊人女女资源在线观看| 中文字暮97| 夜草欧美| 欧美激情综合| 日韩一级成人毛片免费观看 | 国产福利小视频高清在线观看| 插欧洲美女欧美精品| 久久久无码国精品无码三区三区| 日韩欧亚太美不卡| 色九九九九九九| 亚洲自拍偷拍视频在线| 日韩欧美一级特黄大片| 久久精精区一区二区一蜜桃一区二区| 欧美亚洲AN| 久久久999国产精品| 日本成a人v网站在线观看| www..com操老师| 97久久视频| 97超碰久| 国产免费黄色一级大片| 9999免费精彩视频| 九九热在线精品视频| 加勒比综合88| 久久久久国产精品喷潮免费观看臀| 草草影院在线视频| 后入福利| 日本精品加勒比海一区| 国产久9| 老司机午夜精品视频| 亚洲综合一区二区| 久久久久亚洲一区女同性恋中文字幕| 97超碰超| 成人av动漫在线观看| 国产一区麻豆免费观看| 四虎免费在线观看| 毛片电影一区二区三区| 国产精品久久久久久久久久久久久久久久| 91操熟女| 青青草中文-久久青草精品一区二区三| 国产肏屁眼视频| 神马麻豆福利院| 黄色小视频日本txt| 麻豆天美国美国产| 亚洲精品欧洲色| 偷拍自拍在线视频观看| 国产精品一区二区后入| 国产综合在线视频网站| 91蜜臀熟女| 婷婷人妻激情| 无遮挡h肉动漫在线观看| 97看操| 啊啊嗯嗯好爽| 色五月婷婷五月天| 91久久婷婷| 久久久久9999| 97超碰精品| 超碰538| ?亚洲伊人伊成久久人综合网| 午夜精品久久999热蜜桃介男人用| 超硑97精品| 国产91美女高潮| 一二三区在线| 6080YYY午夜理论片在线观看| 在线视频亚洲无码| 欧洲人妻视频| 国产九月婷婷| 91狠狠| 美国人人操人人操| 国产精品色片一区二区| 美女黑人91神马| 一区二区精品日韩欧美在线观看| 欧美 传媒 麻豆 日韩 偷拍| 无码精品久久久天天影视| 91在线丝袜视频| 成人免费看吃奶视频网站| 97干在线视频| 色月天AV导航| 国模无码人体一区二区三| 懂色av色欲av蜜臀av| 亚洲激情色片 | 91在线美女| 91 欧美| 少妇一区二区三区在线观看| 久久视网78| 国产一区二区三区白丝| 久操影视| 久久久久免费少妇| 青草草免费网站av| 四虎在线免费视频| 日韩啪啪啪啪啪| 国产综合色精品在线观看| 曰本熟女视频| 国内三级自拍小视频在线观看| 亚洲天堂另类| 超碰碰97| 狠狠久久亚洲欧美专区| 超清福利精品视频在线| 天美麻豆黄色录像| 国产有码一区| 秋霞无码av鲁丝片一区| 亚洲全色网| 伊人影院中文字幕| 成人激情无码在线视频| 午夜传煤十二区精品| 人人弄人人摸| 亚洲精品一卡二卡三卡福利视频网站| 一区二区三区四区免费视频| 亚洲高清91| 欧美无圣光在线| 亚洲一区二区精品福利| 啊啊啊在线观看| 99精品久久久久久| 无码人妻一区二区一牛影视| 大香蕉专区| 九九九九精品精| 亚洲少妇在线影音| 色爽爽文学| 女同性恋久久| 精品中文字幕第一页| 清纯唯美激情| 91成人久久| 一品道视频一区二区三区| 久久久亚洲高清不打码| 黄色免费网| 久久久月天| 久久久久久久久久黄色网 | 蜜臀久久久99久久久久 | 免费成人在线熟妇网| 大香蕉九九| 秋霞无码av鲁丝片一区| 极品欧美一区二区三区| 美女啊啊啊啊啊| 肉丝无码中文高清| laoshunv91| 亚洲AV无码| 五月婷丁香| 国产人妖视频一区在线观看| 国产精品成人AV片免费看网站| 狠狠97| 夜夜国产一区| 亚洲五码一区二区三区| 精彩国产视频播放1区2区| 五月天激情婷婷| 国产精品无码av| 自拍偷拍草一草| av中亚| 97干在线视频| 欧美日韩97| 精品国产乱码久久久A| 色哟哟av| 夜夜嗨一区二区三区三州加勒比| 天堂资源站| 免费网站观看www在线观| oumeisetu综合| 亚洲.欧美.丝袜.中文.综合| 欧差乱伦二三| 亚洲一区操| 在线观看啊啊啊啊啊| 天天弄天天操| 色色综合网站| 人妻少妇久久久| 操逼日韩无码| 久久人妻精品| 国产女上位好爽在线| 欧美综合站| 在线啊啊啊啊| 欧美婷婷久久| 91 丝袜在线观看| 青青草白白色| 综合欧美日本三级| 色欲天天综合网| 久久婷婷色| 亚洲五月丁香花狠狠干一区二区三区 | 一区二区三区国产精产| 欧亚洲精品有视频| 嗯嗯嗯不要不要免费视频| 啊嗯好大视频在线观看| 久久久久久久国产| 日韩999| 色性欧美| 九九人妻| 欧美一区二区观看在线| 一二视频神马久久传媒| 欧美激情亚洲情色| av毛片aaaaa免费看| 亚洲熟女乱色一区二区三区| www.91逼逼.com| 亚洲精品啪视频| 色色五月天婷婷| 欧美性猛交美女自慰91| 九九九九九用不成了| 激情文学小说一区二区| 超碰97中文| 精品中文字幕第一页| 日韩欧美字幕亚洲一区二区| 色97| 操少妞在线视频| 91欧美经典| 亚洲av无码国产精品字幕| 亚洲午夜福利在线影院| 97舔舔| 啊啊啊啊啊啊啊在线| 欧美日韩亚洲天堂| 亚洲精品性爱片| 色情综合| 青青伊人久久| 精品无码久久久久久久杏吧| 丝袜美腿制服人妻二区中文字幕| 国产一区96在线| 成人欧美日超碰| 黄页av| 无码乱人伦中文视频| 人妻天堂综合网| 亚洲丝袜二区| 人妻中文字幕日韩电影| 91天天日| 欧美日韩妖精91com| 大香蕉乱级| 黄色av一区二区在线| 日韩99神马视频播放| 超碰碰97资源站| 亚洲va有码在线天堂| 久久久999日本大片| 中字一区| 99.色网| 国产精品9999| 美国三级日本三级久久99| 三级片大波波| 91粉嫩萝控精品福利网站_精品影音先锋国 | 91深夜夜| 狠狠操狠狠爱| 99热这里只有精品地址| 青青草视频导航官网| 2020中文字幕在线观看| 激情久久av一区av二区av| 中国黑人三级片网站上区| 青娱乐啪啪视频| 欧美丰满熟妇XXXX性ppX人交| 欧美五区| 超碰色综合| 亚洲色入欧美| 无码一区二区精品视频久久久春药| 五月综合久久| 我爱操| 久久国内| 超碰在线1234区| 狼狼色丁香久久婷婷综合五月| 动漫片子网站3黄| 亚欧美无遮挡| 99re公开精品免费视频| 久久一区二区高清免费| 国产a片操逼| 人妻丰满熟妇一区二区三| 欧美人妻二区三区| 国产一区二区啪啪视频| 91国精产品| 日韩美女操b| 麻豆伊人网| 老熟女乱伦一区| 欧美色66| 性在久久久久久| 天堂射| 欧美日韩国产黄色片| 亚洲综合骚逼| 一区二区三区精品视频| 久久一二三四五六七八九区| 婷婷综合网站| 激情一区二区| 欧美 中文字幕 一区| 九九热在线精品视频| 亚洲区限制级| 超97在线精品视频| 中文熟女五十乱码在线| 99精品欧美一区二区三区桃色| 亚洲暴力强奸AV| 98福利在线视频| 久久久成人国产精品无码| 久久熟女嫩草成人片免费| 眼镜人妻101.com| 国产精品视频精品一二| 激情在线青青操| 玖玖人人爱| 午夜福利久久久噜久噜久久综合| 久操91视频| 丁香色色网| 人人摸人人干人人拍97| 蜜臀99久久精品久久久久久| 99热在线观看| av一区二区三区四区| 老司机午夜福利视频一区二区| 亚洲精品日韩国产欧美| 亚州综合色| 色天堂综合| 中文字幕黄色片| 欧美日韩国产成人高清| 色天堂在线观看| 男人天堂一区二区| 国产第12页| 久久久久久中文| 久九干| 亚洲精品中文字幕一区在线视频| 一区二区视频在看| 日本大香蕉| 91Chinese在线| 亚洲,日韩,欧美,成人播放| 精品无av| 午夜一区二区三区国产| 美女久久久| 久久草视频污视频| 国语精品av| 免费精品福利在线观看| 日韩不卡一二三四| 3P乱轮视频| 东北老女人的激情视频| 人人么人人操| julia高潮后不停追击中出| 天天干夜夜| 久久国内| 91高清日| 91久久久久久| 亚洲天堂2020| 国产成人资源| 国产v亚洲v日韩v欧美v片另类| 大奶啊啊好爽 | 色香伊人| 亚洲AV无码成人精品久久| 操91| 亚洲一区二区精品福利| 后入综合久久| 99热精品在线观看| 亚洲色宗合| 亚洲人成色9999精品久久 | 成人日韩中文字幕| 久久综合国产精品国产| 中文字幕人乱码中文字的预防方法| 蜜桃视频成a人v在线| 色偷偷超碰亚洲| 丁香五月天堂| 深夜福利黄片| 超碰98综合网| 成人性爱电影一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 欧美亚洲第1页| 日韩精品在线视频在线观看| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲色图第四色| 亚洲天堂 视频你懂的| 久久尹人大香焦视| 精品十三区| 无码免费精品高清| 日日爱99| 国产久久日| 五月丁香| 黑人精品一区二区在线播放| 精品国产乱码久久久久久日本公司| 亚洲综合在线视频| 波多野结衣AV无码一区| 天天日熟妇| 综合久草| 色综合久久88色综合久久天天| 亚洲高清欧美总合| 性久久| 97这里都是精品| 成人国产精品三级A片| 亚洲天堂男人的天堂| 蜜臀久久在线视频| 99热在线播放| 噜噜噜在线视频| 国内一级精品| 国产少妇高潮| 精品色色| 日本色色色视频| 肏逼视频日本| 91欧美少妇| 欧美久久婷婷| 久久婷婷一区二| 亚洲乱码国产乱码精网站| 精品九九九九九| 老色鬼成人精品视频下载大在线观看| 97干日韩| 色综合色色| 3P乱轮视频| 精品性爱一区二区| 丰满少妇人妻久久久久久| 精品久久久久久AV无码| julia国产在线 | 亚洲精品一区二区免费在线观看| 日本91白丝| 亚欧韩av| 一级特级aaaa毛片免费观看| 久久久久久国产成人| 黄色工厂这里只有精品| 韩国嫰模上门援交视频| 超碰天天操| 欧美亚洲20p| 视频二区美腿丝袜制服人妻欧美 | 老熟女中文字幕高清| 久久伊人在线五区| 啊啊啊啊嗯嗯嗯用力好爽 | 安徽熟妇视频| 毛片视频白嫩| 95精品在线| 天天日少妇逼AV| 欧美99热| 4399成人黄A片| 婷婷天堂站| 97碰在线视频| 日韩人妻无码专区| 久久久国产成人一区二区三区在线| 香蕉热人人精品| www亚洲免费| 欧洲亚洲国产综合在线| 亚洲伊人a线观看视频| 牛牛操视频逼| 国产乱伦亚洲| 久久av成人无码免费| 激情网色| 国内自拍 日韩激情 99| 桃花色涩综合影院| 九九激情网| 亚洲成人av色网| 极品五月天噜噜| 久热久一区二区三区| 亚洲精品丝袜| 99国产精品久久久久久久成人热| 欧洲精品一区二区三区| 日本男人插女人的逼黄色| 都市激情人妻一区二区青青操视频| 久久99999| 久久精品国产久精国产| 国产熟女自拍| 一本色道久久综合精品婷婷| 亚洲天天更新| 粉嫩av平台| 日韩性爱1级片视频| 欧美亚洲尤物久久| 强奸xx国产| 荡小穴在线观看| 欧美日韩亚洲天堂网| 蜜乳av一区二区三区四区不卡| 亚洲综合草草| 综合网天天| 黑人美精品 A片| 日本岛国黄色网址| 91N五十路| 人妻无码久久一区二区三区免费| 日韩人人精品| 欧美色涩| 黄片免费久久久久久久| 亚洲色婷婷| 日本三级日本三级三级人妇四虎| 久草男人天堂| 欧美性爱一区二区三区| 免费日韩黄片| 九九激情网| 伊人精品视频| 亚州性9| 国产91乱伦| 欧洲天天在线| 999熟女精品| 被操高清无码视频| 中文字幕精品区先锋资源| 精品妇女一区二区三区| 中字一区| 欧美高清18A片| 三级片网站在线播放| 欧美熟女激情| 麻豆成人影音在线| 精品亚洲黄色片 国产精品导航一区二区| 婷婷大香蕉| 大香蕉青青9| 精品亚洲| 精品亚洲国产成人AV制服丝袜| 四虎在线视频| 色色五月天婷婷| 美骚妇av高清在线| 91丝袜| 天天草天天干天天日| aaa淫乱视频| 亚洲欧洲自拍| 国产女性无套 免费观看| 成人网欧美风情| 女优大全 - 91n| 久操不卡视频| 乱码人妻一区二区三区| 黄视频免费| 欧美嗯啊……在线观看视频免费| 国产精品97超碰| 日韩性爱毛片操骚逼| 97亚洲一区| 精品国产AV一区天美传媒| 亚洲欧美日韩精品久久久一区二区| 人妻天天爽夜夜爽精品2| 亚洲色交| 色婷婷影院| 三级片大波波| 无卡一区=区| 人人摸人人添人人操| 色噜噜人妻丝袜AV资源| 思思久热在线精品66| 很很干很很操| 神马麻豆福利院| 91狠狠色丁香婷婷综合久久| 欧美洲精品一级| 欧美日韩操操操| 欧美日韩人妻婷婷一区| 天天激情综合站| 男人天堂网站| 久久久久九九九九| 操逼999| ss久久| 久久,精品一二三| 国产AV激情无码久久无码 | 亚洲大色堂| 日韩欧美亚欧在线视频| 丝袜六区| 国产操逼网站亚洲一级黄色| 99re这里只有精品中心播放| 91黑丝在线| 久草久热| 国产一区二区在线播放量| 色婷婷蜜臀av| 精品中文字幕第一页| 日韩精品电影| hd成人一区二区在线| 91操熟女视频 | 亚洲精品久久久久毛片A片拉屎| 色欧美天天| 青春草莓视频在线观看网址| 午夜成人福利影视| 精品人妻av在线播放| 色悠久久久av| 国产免费一区二区在线A片视频| 国际精品久久久| 日韩乱码Av| 五月丁香色色网| 91精品又粗又猛又爽| 玖玖久久久| 人妻少妇色综合| 欧美色图第一页| 国产天天骚| 免费伦费视频在线观看| 久久久九| av优播| 色在线综合| 97国产综合欧美| 婷婷五月天小说| 你懂的在线观看区国产| 91欧美性| 亚洲中文字幕97久久精品少妇| 国产性爱强奸乱伦大全| 伦理弟一页| 日本三级中国三级99人妇网站| 青娱乐休闲视频在线观看| 亚洲色图欧美色图制服诱惑| 91操人视频| www.久久制服糖| 国际精品久久久| 97 国产一区| 国产精选三级在线观看| 日韩免费一级性爱视频| 91在线丝袜| 屌妞视频久久久久久久久久久久| 欧美顶级黄片AAAAA在线免费看| 日韩大香蕉| 中文日韩欧美熟| 日韩美女久久一区二区三区| 国模无码一区二区三区在线| 97视频免费在线观看| 欧美一区二区三区成人性生活| 麻豆天美国美国产| 簧片免费看视频| 久久天天艹| 91爱网| 婷婷激情五月综合| 免费久久9999| 欧美色偷拍| 欧美一区二区亚洲天堂| 最新av网站在线观看| 日本色日夜干| 日本ZZ高免费A级视频| 久久久久久波多野吉衣高潮| 久久侵犯人妻爽爽爽| 操逼操操操91| 激情小说成人日本无码一| av网站在线看| 九九碰九九爱97超| 国产嫩草精品A88AV| 精吧天堂| 999九九精品| 嗯嗯啊好大| 亚洲91色在线| 亚洲人成色9999精品久久| 五月天激情国产综合婷婷婷| 国产一级黄色片在线观看| 操逼大黄片| 九九热久久99精品re| 熟女探花啪啪| 色在线视频导航| 精品国产乱码久久久久久蜜臀| 97色欧洲| 日韩精品亚洲一二三| 噜噜瑟| 国产日韩中文字幕欧美| 中文字幕在线第二页| 啊嗯嗯啊好大好爽| 五月天亚洲网| 夜夜夜夜爽| 99福利社| 精品玖九九久| 97欧美日韩| 亚洲学生妹高清av| 97啪啪| 免费家庭乱伦视频| 久久久精品91八戒| 69少妇一区二区| 久久毛卡| 国产极品精品美女视频| 牛牛久久国产精品视频一二三| 免费看污网站| 97色论| 天综合网欧美| 亚洲色图第四色| 欧美 日韩第一性色| 美女好片色日本| 78久久| 免费观看成人www精品视频| 狠狠色噜噜狠狠狠狠2018| 成人无码在线视频网站| 亚洲欧美综合区自拍另类| 日韩性爱再线视频| 久久伊人大香蕉| 蜜桃色色网站视频三区| 91新在线欧美| 91精品久久久久久77777| 亚洲中字慕不卡| 中文字幕在线免费观看 | 狠狠操综合| 日本 欧美 亚中文字幕| 久久久久无码| 一区二区三区 丝袜高跟| 97国产精品久久久久| 欧美性爱免费短视频| 午夜福利免费福利视频| AV电影在线播放| 人妻夜夜爽天天爽麻豆三区网站| 久草资源在线视频官方总站日韩丝袜美腿 | 天美传媒一二三区永久网站| 天堂国产AV| 欧美一品道| 超碰天天久久79| 久久久啊啊| 啊啊啊不要嗯嗯在线观看| 变态综合色| 中文字幕人成乱码熟女香港| 五月天婷精品激情| 日韩欧美麻豆大片| 欧美一区二区三区黄色影视| 欧美日韩亚洲天堂| 亚洲第一免费视频| 狠狠狠狠狠| 久久久久网站-538在线视频-欧美永久乱码 | 综合网亚| julia国产在线| 国产精品爱欲| 狠狠干婷婷| 我中文字幕6区 | 中文字幕精品人妻丝袜| 999熟女精品| 欧美日韩插逼视频| 五月激情啪啪| 少妇色综合| 秋霞午夜成人福利片片| 亚洲蜜桃V妇女| 老熟女熟妇| 久久加勒比| 日本午夜精品理论片A级APP发布| 岛国AV一区二区电影| 肥臀熟女一区二区三区视频| 国产东北女人在线视频| 偷拍 精品 另类 四区| 国产91丝袜在线播放蜜月| 天天爽天天爽| 久久精品99| 亚欧性爱无码| 国产精品久久9| 久热这里只有精品9| 国产探花精品在线| 欧美 日韩 国产传媒| 久久激情婷婷| 99久久久99久久91熟女| 黑人粗大V S日韩女优视频| 国产av激情无码久久天堂| 亚洲精品视频二区| 欧美在线亚洲| 久久久精品国产亚洲AV无码| 日日嗨AV一区二区夜夜| 一本久道在线综合视频| 禁止观看美女黄| 神马久久午夜| 亚洲色图大香| 久久久久久综合久久伊人蜜月| 日韩av不卡在线观看| 精品一二三区女同 | 亚洲精品天天影视综合网| 亚洲色图 欧美| 蜜臀av在线播放一区二区三区| 东京热毛片调教| 青草av在线| 大逼色网站| 九九黄色网| 色色97爱| 五月激情天| 极品另类| 一区二区三区日韩欧美 | 91粉嫩萝控精品福利网站_精品影音先锋国 | 亚洲欧美综合网| 亚洲av无码成人精品国产| 亚春色色| 成人精品在线观看| 久久久久久久精| 美国美女AV在线| 亚洲精品国产精品成人| 综合久欧洲| 精品成人无码| 97欧美久久久久久久| 国产激情在线| 久久久91| 午夜久久一区二区无码中出| 日韩强奸av| 亚州欧美一区| 亚欧高清在线| 香蕉99秘 一区精品蜜桃臀| 欧美1727免费观看视频| 秋霞怕怕片| 五月天久久婷婷亚洲| 国产精品久久久久久久黄无码| 神马久久久久久久久| 日日夜夜狠狠| 国产黄色剧情影片麻豆免费播放| 亚洲av热热色| 成人网站 免费观看| 亚州欧美另类| 桃色六月天| 日韩一区二区三区四区五区| 欧美色综合网| 日韩二三区| 91成人在线免费视频| 天天拍夜夜| 欧亚不卡| 国产AV高清AV无码| 日韩啊V| 91影视亚洲| 无码9区| 久久五月天婷婷丁香中文字幕| 东北女人性交| 欧美性,色九九| 搡老熟女老女人老熟妇免费视频| 国产AV中文| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 国产精品一区二区三区在线密挑| 久久透逼视频| 久热网| 三级网站超变态精品| 色欲久久综合| 国产极品精品美女视频| 欧美自拍网| 无码视频一区二区| 9+1视频网址| 中文字幕一区二区日韩网| 欧洲亚洲人妻无码久久三区四区| 亚洲。日韩。欧美| 抽插无码高清一区| 被窝影院午夜看片无码| 婷婷人妻激情| 妇人噜噜| 91色碰| 久久五月婷| 视频在线观看免费一区二区三区 | 中出91| 强奸乱伦Av网| 激情黄色片在线观看| 欧美亚洲今日在线| 试看60秒| 国产盗摄美女如厕大神作品在线观看| 丁香六月啪啪| hd成人一区二区在线| 一级成人性爱| 九九九九九九视频免费| 亚洲干B| 久久久久久久9最新免费视频观看| 天堂资源欧美| 97天天爽| 久热无码| 亚洲国产欧美中文永久| 精品偷拍13p欧美dodk视频| 国产粉嫩蜜臀av一区二区三区 | 五月丁香啪啪啪| 国产高清成人传媒影视| 日韩人妻制服丝袜av| 影音先锋日本一区二区| 啊啊啊啊啊啊在线观看| 少妇无码999| 久久久久久久久久久久97 | 五月色网| 亚洲一区二区精品福利| 国产综合网站在线播放 | 北条麻妃99精品青青久久| 狠狠色综合网| 久久9视频| 色吧综合网| 婷婷综合网| 日韩啪啪啪啪啪| 亚欧精品久久久久久久久久久| 丁香五月影院| 男人的天堂不卡一区二区 | 天天亚洲| 嗯嗯啊啊好爽| 亚洲?V高清一区二区三区尤物| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 嗯嗯,啊啊,国产精品| 玖玖视频在线资源一区二区三区| 丁香五月激情网| 区日韩亚洲乱码av电影| 91男女啊啊啊| 亚洲天堂另类小说男人| 91丝袜在线观看视频在线观看| 天天看少妇| 黄总AV色图| 91少妇香蕉久久精品| 中文子幕一二三| 国产又粗又长的视频| 91中文字幕制服丝袜免费视频|