此文為大家推薦實(shí)用的JavaScript QA 工具,希望對(duì)大家有所幫助!
1、jscs (JavaScript 代碼風(fēng)格檢測(cè)工具)
2、jsinspect(檢測(cè)復(fù)制粘貼和結(jié)構(gòu)類(lèi)似的代碼)
3、ESLint(完全插件化的工具,能在 JavaScript 中識(shí)別和記錄模式)
4、JSHint(是一個(gè)有助于發(fā)現(xiàn) JavaScript 代碼錯(cuò)誤和潛在問(wèn)題的工具)
5、JSLint(高標(biāo)準(zhǔn)、嚴(yán)格和固執(zhí)的代碼質(zhì)量工具,旨在只保持語(yǔ)言的優(yōu)良部分)
6、buddy.js(發(fā)現(xiàn) JavaScript 代碼里的魔法數(shù)字)
切圖 qietu(.com)
:html編碼
背景:html編碼是用于輸出html原本的標(biāo)簽的
想在頁(yè)面上輸出div標(biāo)簽,但是如果我在html標(biāo)簽里直接寫(xiě)的話,就會(huì)被當(dāng)成div標(biāo)簽執(zhí)行,并不會(huì)輸出在頁(yè)面上,這個(gè)時(shí)候我想將他輸出在頁(yè)面上就需要用html編碼
XSS中的應(yīng)用:這種編碼的形式可以用來(lái)去繞過(guò)一些過(guò)濾,比如,有些會(huì)過(guò)濾掉script ,alert,< >這樣的危險(xiǎn)的符號(hào),這個(gè)時(shí)候,就可以用Html編碼來(lái)繞開(kāi)過(guò)濾
比如這里的輸出點(diǎn)在scr里,可以閉合雙引號(hào),然后寫(xiě)一個(gè)onerror事件,將alert(1)進(jìn)行html十進(jìn)制編碼,這樣就避開(kāi)了輸入的過(guò)濾,當(dāng)數(shù)據(jù)到達(dá)輸出點(diǎn)時(shí),頁(yè)面會(huì)先解碼,這個(gè)時(shí)候onerror后面就變成了字符串a(chǎn)lert(1),但是當(dāng)圖片資源加載失敗,觸發(fā)onerror這個(gè)事件時(shí),這個(gè)時(shí)候這個(gè)字符串a(chǎn)lert(1),就會(huì)當(dāng)作js代碼執(zhí)行,就會(huì)彈窗。我這里用的html的十進(jìn)制編碼,用十六進(jìn)制也是一樣的效果
Html在線編碼工具:https://www.qqxiuzi.cn/bianma/zifushiti.php
二:js編碼
XSS應(yīng)用:一般js的編碼用在通過(guò)innerHTML輸出在html里面,比如var search = “可控點(diǎn)”;
document.getElementById().innerHTML=search;
在script標(biāo)簽中,先將js編碼解碼,變成字符串<img src=“x” οnerrοr=alert(1)>,,然后就會(huì)以字符串的形式輸出在html的div標(biāo)簽里,然后當(dāng)作html代碼執(zhí)行,也就執(zhí)行了這個(gè)語(yǔ)句,成功彈窗
Js解碼是用的xss encode插件
三:url編碼
背景:http協(xié)議中傳輸參數(shù)是key=value這種鍵值對(duì)的形式存在的,如果需要傳多個(gè)參數(shù),就需要用&進(jìn)行分割,如name1=value1&name=value2&name3=value3這種形式,如果這個(gè)時(shí)候,我們的值里包含了&或者=這樣的符號(hào),比如name1=value1,其中,value1的值是aaa&b=cc,那么輸出的時(shí)候就會(huì)變成這樣:name1=aaa&b=cc,這本來(lái)是一個(gè)鍵值對(duì),但是服務(wù)器會(huì)解析成兩個(gè),會(huì)造成歧義,為了避免這種情況,對(duì)參數(shù)進(jìn)行了url編碼。&:%26,=:%3D,編碼后就變成了name1=aaa%26b%3Dcc,這樣服務(wù)器解析時(shí),就還是一個(gè)鍵值對(duì),然后進(jìn)行Url解碼,就會(huì)獲取到正確的值了。
XSS中的應(yīng)用:比如說(shuō)當(dāng)你的輸出點(diǎn)在a標(biāo)簽的href屬性中時(shí),對(duì):進(jìn)行了過(guò)濾,這個(gè)你輸javascript:alert(1)時(shí),:就會(huì)被過(guò)濾,導(dǎo)致不能執(zhí)行,這個(gè)時(shí)候就可以先用html編碼成:,再
用url編碼將&編碼成%26,再輸出點(diǎn)瀏覽器會(huì)將html編碼解碼回:,然后輸出在href里,就可以成功彈窗
url編碼和解碼可以在js控制臺(tái)使用js語(yǔ)句來(lái)進(jìn)行編碼解碼:encodeURI(),encodeURIcomponed()
也可以用在線編碼工具:http://tool.chinaz.com/tools/urlencode.aspx
四:base64編碼
Base64一般用在a標(biāo)簽和iframe標(biāo)簽中,
<a href="輸出點(diǎn)">
</a> <iframe src="輸出點(diǎn)" frameborder="0"></iframe>,
如果過(guò)濾了javascript<>”’時(shí),就可以考慮base64編碼,用data協(xié)議
<a href="data:text/html;base64, PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==">test</a>
解碼后為:<img src=x οnerrοr=alert(1)>
當(dāng)點(diǎn)擊鏈接時(shí),頁(yè)面就會(huì)以html的方式解析,用base64的方法解碼,然后成功結(jié)果彈窗。
Base64在線編碼工具:https://base64.us/
注:文章轉(zhuǎn)自互聯(lián)網(wǎng)
家好,我是江湖哥,今天分享html教程入門(mén)級(jí)的部分,大神請(qǐng)繞道,小白請(qǐng)點(diǎn)贊,哈哈,言歸正傳:
知識(shí)要點(diǎn):
1. a標(biāo)簽的概念
2. a標(biāo)簽屬性
a標(biāo)簽的作用:就是用于控制頁(yè)面與頁(yè)面之間的跳轉(zhuǎn)的
a標(biāo)簽的格式:<a href="指定要跳轉(zhuǎn)的目標(biāo)界面的鏈接">需要展示給用戶看見(jiàn)的內(nèi)容</a>
<a href="https://www.toutiao.com/">江湖哥博客</a>
a標(biāo)簽中有一個(gè)target屬性,這個(gè)屬性的作用就是專(zhuān)門(mén)用于控制如何跳轉(zhuǎn)
值
描述
_blank
于在新的選項(xiàng)卡中跳轉(zhuǎn),也就是新建頁(yè)面跳轉(zhuǎn)
_self
默認(rèn)。在當(dāng)前選項(xiàng)卡中打開(kāi)被鏈接文檔,也就是不新建頁(yè)面跳轉(zhuǎn)
_parent
在父框架集中打開(kāi)被鏈接文檔。
_top
在整個(gè)窗口中打開(kāi)被鏈接文檔。
framename
在指定的框架中打開(kāi)被鏈接文檔。
<a href="https://www.toutiao.com/">可見(jiàn)內(nèi)容</a>
<a href="https://www.toutiao.com/" target=”_blank”>江湖可見(jiàn)博客</a>
a標(biāo)簽中還有一個(gè)屬性,叫做title,a標(biāo)簽中的title和img標(biāo)簽中title一樣,都是用來(lái)控制鼠標(biāo)懸停時(shí)顯示的提示文本內(nèi)容的
<a href="https://www.toutiao.com/" target="_blank" title="點(diǎn)擊會(huì)跳轉(zhuǎn)到可見(jiàn)博客首頁(yè)">可見(jiàn)</a>
設(shè)置 target 屬性時(shí), top 與 parent 的打開(kāi)方式十分類(lèi)似,需仔細(xì)區(qū)分。
比如網(wǎng) A 中鑲嵌了 iframe 網(wǎng)頁(yè) B,網(wǎng)頁(yè) B 又鑲嵌了 iframe 網(wǎng)頁(yè)C。
· 如果網(wǎng)頁(yè) C 中連接設(shè)置 target=_parent,則跳轉(zhuǎn)到網(wǎng)頁(yè) B 去掉直接在 A 中嵌入網(wǎng)頁(yè) C 中鏈接頁(yè)面。
· 如果網(wǎng)頁(yè) C 中 target=_top ,則直接跳出所有 iframe 框架,直接轉(zhuǎn)向 C 中鏈接頁(yè)面
1.a標(biāo)簽不僅可以讓文字可以點(diǎn)擊,還可以讓圖片也能夠被點(diǎn)擊。
2.一個(gè)a標(biāo)簽必須有一個(gè)href屬性,否則a標(biāo)簽不知道要跳轉(zhuǎn)到什么地方
3.如果通過(guò)a標(biāo)簽的href屬性指定一個(gè)URL地址,那么必須在地址前面加上http://或https://。
4.a標(biāo)簽的href屬性除了可以綁定一個(gè)網(wǎng)絡(luò)地址以外,還可以指定一個(gè)本地的地址
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>a標(biāo)簽的使用</title>
</head>
<body>
<a name="top"></a>
<a href="https://www.toutiao.com/">a是控制界面也頁(yè)面的跳轉(zhuǎn)</a><br><br>
<a href="https://www.toutiao.com/" target="_blank">跳轉(zhuǎn)到新窗口打開(kāi)</a><br><br>
<a href="#name1">錨點(diǎn)跳轉(zhuǎn)1</a>&nssp;&nssp;&nssp;<a href="#name2">錨點(diǎn)跳轉(zhuǎn)2</a>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
這是一個(gè)錨點(diǎn)跳轉(zhuǎn)文字1 <a name="name1"></a> <a href="#top">返回頂部</a>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
這是一個(gè)錨點(diǎn)跳轉(zhuǎn)文字2 <a name="name2"></a> <a href="#top">返回頂部</a>
</body>
</html>
關(guān)注我,點(diǎn)擊下面鏈接,即可看視頻
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。