Web安全與防護(hù) (微課版) 課件 01-3 項(xiàng)目一 任務(wù)四 Web應(yīng)用中的編碼_第1頁(yè)
Web安全與防護(hù) (微課版) 課件 01-3 項(xiàng)目一 任務(wù)四 Web應(yīng)用中的編碼_第2頁(yè)
Web安全與防護(hù) (微課版) 課件 01-3 項(xiàng)目一 任務(wù)四 Web應(yīng)用中的編碼_第3頁(yè)
Web安全與防護(hù) (微課版) 課件 01-3 項(xiàng)目一 任務(wù)四 Web應(yīng)用中的編碼_第4頁(yè)
Web安全與防護(hù) (微課版) 課件 01-3 項(xiàng)目一 任務(wù)四 Web應(yīng)用中的編碼_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目一Web安全基礎(chǔ)Web安全與防護(hù)本任務(wù)要點(diǎn)學(xué)習(xí)目標(biāo)字符編碼傳輸過(guò)程的編碼熟悉字符編碼的原理和作用。熟悉URL編碼方法。熟悉Base64編碼方法。任務(wù)四Web應(yīng)用中的編碼目錄CONTENTS01/字符編碼02/傳輸過(guò)程的編碼接收方發(fā)送方字符編碼01字符是各種文字和符號(hào)的總稱,其中包括各個(gè)國(guó)家文字、標(biāo)點(diǎn)符號(hào)、圖形符號(hào)、數(shù)字等。常見(jiàn)的語(yǔ)言都有對(duì)應(yīng)的字符編碼,字符編碼就是約定某個(gè)字在計(jì)算機(jī)中的編號(hào)。在Web系統(tǒng)中,需要使用某種編碼方式來(lái)表現(xiàn)語(yǔ)言所對(duì)應(yīng)的文字和格式。編碼解碼傳輸有信息交換就會(huì)產(chǎn)生編碼、傳輸、解碼三個(gè)過(guò)程編碼是信息從一種形式轉(zhuǎn)變成另一種形式的過(guò)程。比如人類的語(yǔ)言通過(guò)聲帶編碼,轉(zhuǎn)換成聲波。解碼是編碼的逆函數(shù),耳膜接收聲波,通過(guò)腦神經(jīng)解碼成人類文化所能理解的信息。在不同的編碼中,同一個(gè)字對(duì)應(yīng)的編號(hào)完全不同,因此容易形成“亂碼”。字符編碼01ASCII編碼:(AmericanStandardCodeforInformationInterchange,美國(guó)信息交換標(biāo)準(zhǔn)代碼)上個(gè)世紀(jì)60年代,美國(guó)制定的一套字符編碼,對(duì)英語(yǔ)字符與二進(jìn)制位之間的關(guān)系,做了統(tǒng)一規(guī)定,被稱為ASCII碼,是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語(yǔ)和其他西歐語(yǔ)言。是最通用的信息交換標(biāo)準(zhǔn),等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC646。計(jì)算機(jī)內(nèi)部,所有信息最終都是一個(gè)二進(jìn)制值。每一個(gè)二進(jìn)制位(bit)有0和1兩種狀態(tài),因此八個(gè)二進(jìn)制位就可以組合出256種狀態(tài),這被稱為一個(gè)字節(jié)(byte)。因此,一個(gè)字節(jié)一共可以用來(lái)表示256種不同的狀態(tài),每一個(gè)狀態(tài)對(duì)應(yīng)一個(gè)符號(hào),就是256個(gè)符號(hào),從00000000到11111111。常見(jiàn)ASCII碼的大小規(guī)則:0~9<A~Z<a~z1)數(shù)字比字母要小,如“7”<“F”;2)數(shù)字0比數(shù)字9要小,并按0到9順序遞增,如“3”<“8”;3)字母A比字母Z要小,并按A到Z順序遞增,如“A”<“Z”;同理,字母a比字母z要小,“a”<“z”;4)同個(gè)字母的大寫字母比小寫字母要小32,如“A”<“a”;字符編碼01ASCII編碼:(AmericanStandardCodeforInformationInterchange,美國(guó)信息交換標(biāo)準(zhǔn)代碼)字符編碼01英語(yǔ)是字母文字,其常用單詞均可以利用26個(gè)字母拼接實(shí)現(xiàn),因此ASCII編碼可滿足英語(yǔ)環(huán)境。但在面對(duì)形意文字時(shí),使用ASCII編碼會(huì)有非常大的問(wèn)題。中文是典型的形意文字,常用的文字?jǐn)?shù)量達(dá)到350個(gè)以上,僅僅利用8bit提供的256個(gè)編碼數(shù)量遠(yuǎn)遠(yuǎn)無(wú)法滿足編碼需求。Unicode編碼UTF-8的特點(diǎn)是對(duì)不同范圍的字符使用不同長(zhǎng)度的編碼。UTF-16編碼以16位無(wú)符號(hào)整數(shù)為單位。我們把Unicode編碼記作U。前綴寫為\u、%u。UTF-32編碼以32位無(wú)符號(hào)整數(shù)為單位。Unicode編碼與ASCII編碼不兼容,但可以轉(zhuǎn)換?!驹囈辉嚒吭L問(wèn)/unicode/站點(diǎn),嘗試將“你好”轉(zhuǎn)換成Unicode編碼和ASCII編碼。Unicode編碼,又稱萬(wàn)國(guó)碼、國(guó)際碼、統(tǒng)一碼,是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。Unicode編碼共有三種具體實(shí)現(xiàn),分別為utf-8,utf-16,utf-32,其中utf-8占用一到四個(gè)字節(jié),utf-16占用二或四個(gè)字節(jié),utf-32占用四個(gè)字節(jié)。Unicode編碼范圍是:0-0x10FFFF,可以容納1114112個(gè)字符。傳輸過(guò)程的編碼02URL與URL編碼URL(UniformResourceLocator,統(tǒng)一資源定位器、定位地址,俗稱網(wǎng)頁(yè)地址,簡(jiǎn)稱網(wǎng)址),是因特網(wǎng)上標(biāo)準(zhǔn)的資源地址,如同在網(wǎng)絡(luò)上的門牌。完整格式:scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment][協(xié)議類型]://[用戶名[:密碼]]@[服務(wù)器地址]:[端口號(hào)]/[資源層級(jí)文件路徑][文件名]?[查詢]#[片段ID]協(xié)議類型:常見(jiàn)的有http、https,還有ftp、file、mailto、data等。用戶名、密碼:這沒(méi)什么好解釋的,就是字面意思。服務(wù)器地址:有的時(shí)候你在URL上看到的是域名,其實(shí)會(huì)通過(guò)DNS轉(zhuǎn)為IP地址,所以還是服務(wù)器IP地址。端口號(hào):常見(jiàn)80、443、21、22等。資源層級(jí)文件路徑:大部分會(huì)隱藏,就是服務(wù)器的目錄路徑,使用"/"區(qū)別每一層。文件名:如訪問(wèn)網(wǎng)頁(yè),可能是xxx.htm、xxx.html、xxx.php等,例如,index.html。查詢:使用"&"連接片段ID:有的時(shí)候被稱為“錨點(diǎn)”,一般是指CSS中的id,就是使用瀏覽器調(diào)試時(shí)看到的id屬性,有時(shí)也可通過(guò)這個(gè)進(jìn)行XSS或sql注入?!驹囈辉嚒吭L問(wèn)站點(diǎn),收縮“URL”,觀察地址欄中的信息,嘗試分析一下URL的結(jié)構(gòu)。其中[用戶名[:密碼]]、[端口號(hào)]、[查詢]、[片段ID]都屬于選填項(xiàng)。傳輸過(guò)程的編碼02URL與URL編碼RFC3986文檔規(guī)定,URL中只允許包含英文字母(a~z、A~Z)、數(shù)字(0~9)、4個(gè)特殊字符(-、_、.、~),以及所有保留字符。在實(shí)際Web應(yīng)用中,所使用的字符遠(yuǎn)不只這個(gè)范圍,如用戶輸入的參數(shù)中可能還帶有單引號(hào)、百分號(hào)、中文等。因此,需要對(duì)URL中的非允許字符進(jìn)行編碼。URL編碼主體采用的是ASCII編碼表,編碼方式是用%(百分號(hào))加上兩位字符代表一個(gè)字節(jié)。例如,單引號(hào)在ASCII中的十六進(jìn)制編碼為27,在URL編碼中就是%27。時(shí)間狀態(tài)編碼前HTTP://3/loginPage.jsp?name=測(cè)試&passwd=ww121%$編碼后HTTP://3/loginPag.jsp?name=%E6%B5%8B%E8%AF%95&passwd=wwl21%25$對(duì)于中文字符,會(huì)先確認(rèn)當(dāng)前頁(yè)面所用的編碼格式。假設(shè)當(dāng)前頁(yè)面為UTF-8編碼。可以看到,URL編碼里針對(duì)參數(shù)“wwl21%$”中的“%”進(jìn)行了編碼,編碼結(jié)果為“%25”。針對(duì)中文字符“測(cè)試”,URL編碼為“%E6%85%8B%E8%AF%95”。查詢“測(cè)試”字符的UTF-8編碼,其十六進(jìn)制編碼就是“E6B58BE8AF95”字符編碼十進(jìn)制編碼十六進(jìn)制測(cè)15119755E6B58B試15249301E8AF95【試一試】根據(jù)上面的方法,嘗試對(duì)“你好”進(jìn)行URL編碼,寫出編碼字符傳輸過(guò)程的編碼02Base編碼Base編碼是一種將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為可打印字符的編碼方式。它將二進(jìn)制數(shù)據(jù)按照一定規(guī)則映射為一組字符,以便于傳輸和存儲(chǔ)。Base編碼常用于將二進(jìn)制數(shù)據(jù)表示為文本形式,例如在URL中傳遞二進(jìn)制數(shù)據(jù)或在數(shù)據(jù)庫(kù)中存儲(chǔ)二進(jìn)制數(shù)據(jù)。常見(jiàn)Base編碼方式有Base16、Base32、Base64。Base16編碼也稱為十六進(jìn)制編碼,將每個(gè)字節(jié)的高4位和低4位分別轉(zhuǎn)換為一個(gè)可打印字符,使用16個(gè)字符(包括0-9和A-F)進(jìn)行表示。常用于表示散列值、數(shù)字簽名和其他需要可讀性較高的二進(jìn)制數(shù)據(jù)。Base32編碼將5個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為8個(gè)可打印字符,使用32個(gè)字符(包括大寫字母和數(shù)字)進(jìn)行表示。常用于在文件名、DNS記錄和身份驗(yàn)證令牌中表示二進(jìn)制數(shù)據(jù)。Base64編碼將3個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為4個(gè)可打印字符,使用64個(gè)字符(包括大小寫字母、數(shù)字和特殊字符)進(jìn)行表示。常用于在電子郵件、HTTP請(qǐng)求和XML文檔中傳輸二進(jìn)制數(shù)據(jù)。Base編碼方式可打印字符:Base編碼將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為可打印字符,方便傳輸和存儲(chǔ)。容錯(cuò)性:Base編碼可以處理部分?jǐn)?shù)據(jù)丟失或錯(cuò)誤,因?yàn)榫幋a后的數(shù)據(jù)仍然可以被解碼還原為原始的二進(jìn)制數(shù)據(jù)。Base編碼特點(diǎn)傳輸過(guò)程的編碼02Base64編碼原理1準(zhǔn)備數(shù)據(jù)將要編碼的二進(jìn)制數(shù)據(jù)準(zhǔn)備好,通常是字節(jié)的形式。2分組將二進(jìn)制數(shù)據(jù)分成固定大小的組,每組通常為3字節(jié)(24位)。如果最后一組不足3字節(jié),通常需要進(jìn)行填充,以便每組都有3字節(jié)。3進(jìn)制轉(zhuǎn)換將每個(gè)3字節(jié)的二進(jìn)制數(shù)據(jù)視為一個(gè)8bit*3=24bit位的二進(jìn)制整數(shù),再轉(zhuǎn)化為一個(gè)十進(jìn)制整數(shù)。4編碼將每個(gè)十進(jìn)制整數(shù)編碼為Base64字符。5填充如果原始數(shù)據(jù)的長(zhǎng)度不是3的倍數(shù),可以使用一個(gè)或兩個(gè)填充字符“=”來(lái)補(bǔ)全Base64編碼,以確保編碼長(zhǎng)度是4的倍數(shù)。1、Base64字符集通常包括64個(gè)字符,通常是大寫字母A到Z、小寫字母a到z、數(shù)字0到9以及兩個(gè)額外的字符(通常是"+"和"/")。2、以24位整數(shù)為例,將它分成4組,每組6位。將4組6位整數(shù)編碼為4個(gè)Base64字符。3、每個(gè)6位整數(shù)對(duì)應(yīng)一個(gè)Base64字符,根據(jù)其在Base64字符集中的位置來(lái)選擇。4、如果原始數(shù)據(jù)不足3字節(jié),會(huì)添加一個(gè)或兩個(gè)額外的0位,以確保每個(gè)6位整數(shù)都有6位。5、Base64編碼的結(jié)果是一個(gè)文本字符串,其中包含一系列Base64字符,每4個(gè)字符分為一組,每組表示一個(gè)24位整數(shù)。傳輸過(guò)程的編碼02Base64常用字符索引表編碼示例:base64編碼Man編碼示例:Base64的末尾補(bǔ)足【試一試】使用Base

64編碼對(duì)Word進(jìn)行編碼傳輸過(guò)程的編碼02HTML字符實(shí)體HTML字符實(shí)體(CharacterEntity)是用來(lái)表示HTML中危險(xiǎn)字符的方案,也是解決跨站腳本(XSS)攻擊的有效手段。<script>alert(/xss/)</script><script>alert(/xss/)</script>HTML字符實(shí)體編碼最常用的字符實(shí)體傳輸過(guò)程的編碼02HTML字符實(shí)體HTML字符實(shí)體(CharacterEntity)是用來(lái)表示HTML中危險(xiǎn)字符的方案,也是解決跨站腳本(XSS)攻擊的有效手段。<script>alert(/xss/)</script><script>alert(/xss/)</script>HTML字符實(shí)體編碼數(shù)學(xué)和希臘字母標(biāo)志課堂實(shí)踐一、任務(wù)名稱:熟悉常見(jiàn)編碼方式的編碼和解碼二、任務(wù)內(nèi)容:使用burpsuite的解碼器功能,對(duì)輸入的信息嘗試進(jìn)行URL編碼、BASE64編碼,并將編碼后的信息,傳遞給同組同學(xué)進(jìn)行解碼操作,對(duì)比解碼后的結(jié)果與初始輸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論