官术网_书友最值得收藏!

2.1 HTML技術(shù)

超文本標(biāo)記語(yǔ)言(Hypertext Marked Language,HTML)是由Web的發(fā)明者Tim Berners-Lee和同事Daniel W. Connolly于1990年創(chuàng)立的一種標(biāo)記語(yǔ)言。用HTML編寫的超文本文檔稱為HTML文檔,它能獨(dú)立于各種操作系統(tǒng)平臺(tái)(如UNIX、Windows和macOS等)。使用HTML語(yǔ)言,將所需要表達(dá)的信息按某種規(guī)則寫成HTML文件,由瀏覽器識(shí)別,并將這些HTML文件“翻譯”成可以識(shí)別的信息,即現(xiàn)在所見到的網(wǎng)頁(yè)。

HTML是通向Web技術(shù)世界的鑰匙。

1.HTML基礎(chǔ)

HTML是Internet上使用最為廣泛的語(yǔ)言,也是構(gòu)成網(wǎng)頁(yè)文檔的主要語(yǔ)言。HTML文本是由HTML命令組成的描述性文本,HTML命令可以說(shuō)明文字、圖形、動(dòng)畫、聲音、表格和鏈接等。HTML的結(jié)構(gòu)包括頭部(Head)和主體(Body)兩大部分,其中頭部描述瀏覽器所需的信息,而主體則包含所要說(shuō)明的具體內(nèi)容。

設(shè)計(jì)HTML語(yǔ)言的目的是將存儲(chǔ)在一臺(tái)計(jì)算機(jī)中的文本或圖形與另一臺(tái)計(jì)算機(jī)中的文本或圖形方便地鏈接起來(lái),形成一個(gè)有機(jī)的整體,不需要考慮特定信息是在當(dāng)前計(jì)算機(jī)上還是在網(wǎng)絡(luò)中的其他計(jì)算機(jī)上,用戶只需單擊文檔中的一個(gè)鏈接,Internet就會(huì)立即將其鏈接到相關(guān)內(nèi)容,而這些內(nèi)容可能存放在網(wǎng)絡(luò)中的另一臺(tái)計(jì)算機(jī)中。

另外,HTML是網(wǎng)絡(luò)的通用語(yǔ)言,是一種簡(jiǎn)單、通用的全標(biāo)記語(yǔ)言。它允許網(wǎng)頁(yè)制作人建立文本與圖片相結(jié)合的復(fù)雜頁(yè)面,這些頁(yè)面可以被網(wǎng)上任何其他人瀏覽,無(wú)論使用的是什么類型的計(jì)算機(jī)或?yàn)g覽器。HTML是組合成一個(gè)文本文件的一系列標(biāo)簽。它們像樂(lè)隊(duì)的指揮,告訴樂(lè)手們哪里需要停頓,哪里需要激昂。

2.HTML安全攻擊

HTML安全攻擊是攻擊者利用HTML語(yǔ)言自身特點(diǎn)進(jìn)行的攻擊,實(shí)際上是一個(gè)網(wǎng)站允許惡意用戶通過(guò)輸入HTML語(yǔ)言的標(biāo)簽進(jìn)行攻擊。由于HTML是用于定義網(wǎng)頁(yè)結(jié)構(gòu)的語(yǔ)言,如果攻擊者可以注入HTML,它們實(shí)質(zhì)上可以改變?yōu)g覽器呈現(xiàn)的內(nèi)容和網(wǎng)頁(yè)的外觀。網(wǎng)絡(luò)釣魚就是創(chuàng)建HTML表單欺騙用戶,以獲取用戶提交的敏感信息。

利用HTML語(yǔ)言的特點(diǎn),在網(wǎng)站文本框中,輸入類似于<tr> <td> <input> </td> </tr><table>的內(nèi)容,就會(huì)影響表格的顯示結(jié)構(gòu)。將這些數(shù)據(jù)顯示到頁(yè)面就會(huì)產(chǎn)生HTML攻擊。

HTML注入攻擊利用網(wǎng)頁(yè)編程的HTML語(yǔ)法,破壞網(wǎng)頁(yè)的展示,甚至導(dǎo)致頁(yè)面的源碼展示在頁(yè)面上,破壞正常的網(wǎng)頁(yè)結(jié)構(gòu),或在正常的網(wǎng)站中內(nèi)嵌釣魚登錄框,對(duì)網(wǎng)站攻擊比較大。

實(shí)例1:網(wǎng)頁(yè)中用戶可以填寫內(nèi)容的位置,如果填寫成“<table”,則可能導(dǎo)致網(wǎng)頁(yè)源代碼全部展示出來(lái),或整個(gè)網(wǎng)頁(yè)結(jié)構(gòu)錯(cuò)亂。

實(shí)例2:網(wǎng)頁(yè)中用戶可以填寫內(nèi)容的位置,如果填寫成“<iframe src= XXX.com>”,則可能導(dǎo)致該網(wǎng)頁(yè)成為釣魚網(wǎng)頁(yè)。

實(shí)例3:網(wǎng)頁(yè)中用戶可以填寫內(nèi)容的位置,如果填寫成“<script>alert(111)</script>”,則可能導(dǎo)致跨站腳本(Cross Site Scripting,XSS)攻擊。

3.HTML安全防護(hù)

對(duì)HTML語(yǔ)言攻擊的防護(hù),主要采用兩種方式。

● 凈化輸入,即對(duì)每個(gè)輸入框可以接收的數(shù)據(jù)要有嚴(yán)格的定義,包括數(shù)據(jù)類型、長(zhǎng)度等。如果用戶輸入的內(nèi)容不符合要求,就拒絕向后臺(tái)提交。當(dāng)然這種凈化輸入不能完全依靠前端的JavaScript,因?yàn)楣粽呖梢酝ㄟ^(guò)工具繞行JavaScript的控制,所以除了前端檢查,在后臺(tái)真正提交數(shù)據(jù)庫(kù)前還要做服務(wù)器端的輸入合法性校驗(yàn),只有通過(guò)合法性校驗(yàn),才能真正執(zhí)行。

● 格式化輸出,即對(duì)于要展示的用戶數(shù)據(jù)需要經(jīng)過(guò)適當(dāng)?shù)木幋a才能輸出,避免出現(xiàn)腳本執(zhí)行或破壞HTML文檔結(jié)構(gòu)。

主站蜘蛛池模板: 金阳县| 米易县| 泰安市| 湘阴县| 丽江市| 孙吴县| 汝阳县| 老河口市| 任丘市| 长海县| 肥西县| 宣威市| 雅江县| 堆龙德庆县| 梁山县| 茂名市| 柏乡县| 文安县| 甘肃省| 喀喇沁旗| 旅游| 东丰县| 台州市| 科技| 鄯善县| 澄城县| 南澳县| 松溪县| 浦江县| 松桃| 全州县| 永吉县| 贵港市| 闸北区| 琼中| 荃湾区| 上思县| 肥乡县| 濮阳市| 武陟县| 祁连县|