-
點擊穿透
這是因為在移動端瀏覽器,事件執(zhí)行的順序是touchstart > touchend > click 而click事件有300ms的延遲,當(dāng)touchstart事件把B元素隱藏之后,隔了300ms,瀏覽器觸發(fā)了click事件,但是此時B元素不見了,所以該事件被派發(fā)到了A元素身上 如果A元素是一個鏈接,那此時頁面就會意外地跳轉(zhuǎn) -
事件機制
捕獲,到達目標(biāo),冒泡 現(xiàn)代瀏覽器:addEventListener / evt.target,無on,有捕獲和冒泡,參數(shù)3控制在捕獲還是冒泡階段觸發(fā)事件 舊IE:attachEvent / event.srcElement,帶on,只有冒泡階段 -
XSS
發(fā)生在: 1. 數(shù)據(jù)從一個不可靠的鏈接進入到一個web應(yīng)用程序 2. 沒有過濾掉惡意代碼的動態(tài)內(nèi)容被發(fā)送給web用戶 前端防范: 1. 字符串類型的數(shù)據(jù),需要針對<、>、/、’、”、&五個字符進行實體化轉(zhuǎn)義 function encodeHTML (a) { return String(a) .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, """) .replace(/'/g, "'"); }; 2. 在響應(yīng)頭或頁面<meta>內(nèi)設(shè)置 Content-Security-Policy 3. 設(shè)置響應(yīng)頭的 HttpOnly ,使得 cookie 不能使用 JavaScript 經(jīng)由 Document.cookie 屬性、XMLHttpRequest 和 Request APIs 進行訪問 后端防范:過濾所有的‘<’和‘>’字符,確保從后端而來的數(shù)據(jù)并不帶有任何的html標(biāo)簽,xss的危險在于有不可預(yù)料的前端腳本,但是值得注意的是,不單只有script標(biāo)簽是可以運行腳本的,任何的html標(biāo)簽都可以加上類似onclick,onload這樣的事件也都可以運行腳本,所以需要過濾所有的‘<’和‘>’字符
JS題 實際問題
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 相關(guān)知識點 移動端、 適配(兼容)、 ios點擊事件300ms延遲、 點擊穿透、 定位失效...... 問題&解決...
- 1.幾種基本數(shù)據(jù)類型?復(fù)雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined、Nul...
- 簡介 本文內(nèi)容摘自《深入理解Nginx》第二版 1.6節(jié)。 命令行控制 默認路徑 默認安裝路徑是/usr/loca...