整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          前端工程師面試必考Web網(wǎng)絡(luò)安全之 XXS腳本攻擊示例及防御措施


          么是XSS腳本攻擊

          XSS全名:Cross-Site-Scripting, 理論上縮小應(yīng)該為 CSS 但為了和 CSS(層疊樣式表)進(jìn)行區(qū)分,改了個(gè)名字叫XSS.

          XSS攻擊通常指的是通過利用網(wǎng)頁開發(fā)時(shí)留下的漏洞,通過巧妙的方法注入惡意指令代碼到網(wǎng)頁,使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁程序。這些惡意網(wǎng)頁程序通常是JavaScript,但實(shí)際上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻擊成功后,攻擊者可能得到包括但不限于更高的權(quán)限(如執(zhí)行一些操作)、私密網(wǎng)頁內(nèi)容、會(huì)話和cookie等各種內(nèi)容

          xss腳本攻擊原理

          HTML是一種超文本標(biāo)記語言,通過將一些字符特殊地對待來區(qū)別文本和標(biāo)記,例如,小于符號(<)被看作是HTML標(biāo)簽的開始,<title>與</title>之間的字符是頁面的標(biāo)題等等。當(dāng)動(dòng)態(tài)頁面中插入的內(nèi)容含有這些特殊字符(如<)時(shí),用戶瀏覽器會(huì)將其誤認(rèn)為是插入了HTML標(biāo)簽,當(dāng)這些HTML標(biāo)簽引入了一段JavaScript腳本時(shí),這些腳本程序就將會(huì)在用戶瀏覽器中執(zhí)行。所以,當(dāng)這些特殊字符不能被動(dòng)態(tài)頁面檢查或檢查出現(xiàn)失誤時(shí),就將會(huì)產(chǎn)生XSS漏洞。

          xss腳本攻擊特點(diǎn)

          與釣魚攻擊相比,XSS攻擊所帶來的危害更大,通常具有如下特點(diǎn):

          ①由于XSS攻擊在用戶當(dāng)前使用的應(yīng)用程序中執(zhí)行,用戶將會(huì)看到與其有關(guān)的個(gè)性化信息,如賬戶信息或“歡迎回來”消息,克隆的Web站點(diǎn)不會(huì)顯示個(gè)性化信息。

          ②通常,在釣魚攻擊中使用的克隆Web站點(diǎn)一經(jīng)發(fā)現(xiàn),就會(huì)立即被關(guān)閉。

          ③許多瀏覽器與安全防護(hù)軟件產(chǎn)品都內(nèi)置釣魚攻


          若我們在評論里輸入了一段可執(zhí)行的javascr,讓他彈出 OK,當(dāng)把評論提交后,如果沒有網(wǎng)站沒有做字符的過濾處理的話,那么我們提交的腳本就會(huì)加載到頁面里,但是別忘了他是一個(gè)JS的alert方法,然后大家一打開評論頁面就會(huì)彈出 OK.

          可能的幾種XSS注入方式

          • alert(String.fromCharCode(88,83m83)) 通過獲取字母的ASCII碼來規(guī)避網(wǎng)站的過濾。
          • <img src ="javascript:alert('xss')"/>通過img標(biāo)簽來達(dá)到攻擊的目的,
          • <link rel="stylesheet" href="javascript:alert(xss);">通過樣式表注入
          • <style>@im\port'\ja\vasc\ript:alert('xss')';</style>通過style方式注入

          XSS腳本攻擊防御方式:

          • 不信任用戶提交的任何內(nèi)容,對所有用戶提交內(nèi)容進(jìn)行可靠的輸入驗(yàn)證,包括對URL、查詢關(guān)鍵字、HTTP頭、REFER、POST數(shù)據(jù)等,僅接受指定長度范圍內(nèi)、采用適當(dāng)格式、采用所預(yù)期的字符的內(nèi)容提交,對其他的一律過濾。盡量采用POST而非GET提交表單;對“<”,“>”,“;”,“””等字符做過濾;任何內(nèi)容輸出到頁面之前都必須加以en-code,避免不小心把htmltag顯示出來。
          • 實(shí)現(xiàn)Session 標(biāo)記(session tokens)、驗(yàn)證碼系統(tǒng)或者HTTP引用頭檢查,以防功能被第三方網(wǎng)站所執(zhí)行,對于用戶提交信息的中的img等link,檢查是否有重定向回本站、不是真的圖片等可疑操作。
          • cookie 防盜。避免直接在cookie中泄露用戶隱私,例如email、密碼,等等;通過使cookie和系統(tǒng)IP綁定來降低cookie泄露后的危險(xiǎn)。這樣攻擊者得到的cookie沒有實(shí)際價(jià)值,很難拿來直接進(jìn)行重放攻擊。
          • 確認(rèn)接收的內(nèi)容被妥善地規(guī)范化,僅包含最小的、安全的Tag(沒有JavaScript),去掉任何對遠(yuǎn)程內(nèi)容的引用(尤其是樣式表和JavaScript),使用HTTPonly的cookie。

          G版本通用外掛開發(fā) UG Open/Grip 教程

          $$ 注釋

          $$ Grip啟動(dòng)和編譯:先找到UG的安裝路徑,如C:\Program Files\EDS\Unigraphics NX。

          $$ 進(jìn)入該路徑下的UGOPEN目錄,找到grade.bat文件,打開它,將環(huán)境變量base_dir

          $$ 設(shè)置成set base_dir=C:\Program Files\EDS\Unigraphics NX,保存并運(yùn)行。

          $$ Grip程序的編寫和編譯:在Grip的運(yùn)行程序中,鍵入4,將你編寫的Grip程序所在的目

          $$ 錄寫入并回車。在Grip的運(yùn)行程序中,鍵入1,寫入新建Grip程序的文件名并回車,此時(shí)

          $$ Grip會(huì)打開寫字板,你可以在其中寫入你的程序。在Grip的運(yùn)行程序中,鍵入2,寫入

          $$ 所編譯的文件名,編譯無錯(cuò)后,鍵入3,寫入所鏈接的文件名,鏈接無錯(cuò)后完成。

          $$ 你所編寫的Grip程序保存成*.grs文件,編譯后Grip會(huì)生成*.gri文件,鏈接后Grip會(huì)

          $$ 生成*.grx文件,此文件為Grip的運(yùn)行文件。

          $$ Grip程序的運(yùn)行:打開UG,點(diǎn)擊File->Execute->Grip,選擇*.grx文件,就可運(yùn)行它。

          $$ 編譯時(shí)應(yīng)先編譯子函數(shù)文件,生成*.gri,子函數(shù)文件不需要鏈接,此時(shí)再編譯主函數(shù)

          $$ 文件,生成*.gri,最后鏈接成*.grx。

          $$ Grip主函數(shù)文件必須以HALT結(jié)束,Grip子函數(shù)文件必須以RETURN結(jié)束。

          $$ 定義的變量不能超過6個(gè)字符,Grip會(huì)認(rèn)為Point_1和Point_2是同一個(gè)變量。

          $$ 一行不能超過80個(gè)字符,若超過,可用$符號來換行。

          $$ Grip不區(qū)分大小寫,也就是Grip會(huì)認(rèn)為POINT和point都是畫點(diǎn)函數(shù),但是我建議Grip

          $$ 的函數(shù)名和關(guān)鍵字用大寫,用戶定義的變量用小寫。但是用戶定義的變量不能和Grip的

          $$ 函數(shù)名和關(guān)鍵字重名。

          $$ Grip的幫助文件在C:\EDS\Unigraphics NX\UGDOC\html_files\mainlibrary.chm\

          $$ Open\GRIP Reference Guide下。一個(gè)簡便的Grip函數(shù)查找方法:打開...\Word &

          $$ Symbol Lists\Major Word List,根據(jù)首字母來查函數(shù)。

          HALT $$ 結(jié)束語

          ideo標(biāo)簽

          • 作用: 播放視頻

          • 格式1:



          • video標(biāo)簽的屬性

            • src: 告訴video標(biāo)簽需要播放的視頻地址

            • autoplay: 告訴video標(biāo)簽是否需要自動(dòng)播放視頻

            • controls: 告訴video標(biāo)簽是否需要顯示控制條

            • poster: 告訴video標(biāo)簽視頻沒有播放之前顯示的占位圖片

            • loop: 告訴video標(biāo)簽循環(huán)播放視頻. 一般用于做廣告視頻

            • preload: 告訴video標(biāo)簽預(yù)加載視頻, 但是需要注意preload和autoplay相沖, 如果設(shè)置了autoplay屬性, 那么preload屬性就會(huì)失效

            • muted:告訴video標(biāo)簽視頻靜音

            • width/height: 和img標(biāo)簽中的一模一樣

          • 格式2



          • 第二種格式存在的意義

            • 由于視頻數(shù)據(jù)非常非常的重要, 所以五大瀏覽器廠商都不愿意支持別人的視頻格式, 所以導(dǎo)致了沒有一種視頻格式是所有瀏覽器都支持的這個(gè)時(shí)候W3C為了解決這個(gè)問題, 所以推出了第二個(gè)video標(biāo)簽的格式

            • ideo標(biāo)簽的第二種格式存在的意義就是為了解決瀏覽器適配問題. video 元素支持三種視頻格式, 我們可以把這三種格式都通過source標(biāo)簽指定給video標(biāo)簽, 那么以后當(dāng)瀏覽器播放視頻時(shí)它就會(huì)從這三種中選擇一種自己支持的格式來播放

          • 注意點(diǎn):

            • 當(dāng)前通過video標(biāo)簽的第二種格式雖然能夠指定所有瀏覽器都支持的視頻格式, 但是想讓所有瀏覽器都通過video標(biāo)簽播放視頻還有一個(gè)前提條件, 就是瀏覽器必須支持HTML5標(biāo)簽, 否則同樣無法播放

            • 在過去的一些瀏覽器是不支持HTML5標(biāo)簽的, 所以為了讓過去的一些瀏覽器也能夠通過video標(biāo)簽來播放視頻, 那么我們以后可以通過一個(gè)JS的框架叫做html5media來實(shí)現(xiàn)

          audio標(biāo)簽

          • 作用: 播放音頻

          • 格式:

          • 注意點(diǎn):

            • audio標(biāo)簽的使用和video標(biāo)簽的使用基本一樣, video中能夠使用的屬性在audio標(biāo)簽中大部分都能夠使用, 并且功能都一樣. 只不過有3個(gè)屬性不能用, height/width/poster

          詳情和概要標(biāo)簽

          • 作用:利用summary標(biāo)簽來描述概要信息, 利用details標(biāo)簽來描述詳情信息

            默認(rèn)情況下是折疊展示, 想看見詳情必須點(diǎn)擊

          • 格式:



          marquee標(biāo)簽

          • 作用: 跑馬燈效果

          格式:

          • 屬性:

            • direction: 設(shè)置滾動(dòng)方向 left/right/up/down

            • scrollamount: 設(shè)置滾動(dòng)速度, 值越大就越快

            • loop: 設(shè)置滾動(dòng)次數(shù), 默認(rèn)是-1, 也就是無限滾動(dòng)

            • behavior: 設(shè)置滾動(dòng)類型 slide滾動(dòng)到邊界就停止, alternate滾動(dòng)到邊界就彈回

          • 注意點(diǎn):

            • marquee標(biāo)簽不是W3C推薦的標(biāo)簽, 在W3C官方文檔中也無法查詢這個(gè)標(biāo)簽, 但是各大瀏覽器對這個(gè)標(biāo)簽的支持非常好

          HTML中被廢棄的標(biāo)簽

          — 由于HTML現(xiàn)在只負(fù)責(zé)語義而不負(fù)責(zé)樣式.但是HTML一開始有一部分標(biāo)簽連樣式也包攬了, 所以這部分標(biāo)簽都被廢棄了

          • b(Bold)作用: 將文本字體加粗

            • 格式:<b>將文本字體加粗</b>

          • u(Underlined)作用: 為文本添加下劃線

            • 格式:<u>為文本添加下劃線</u>

          • i(Italic)作用: 顯示斜體文本效果

            • 格式:<i>顯示斜體文本效果</i>

          • s(Strikethrough)作用: 為文本添加刪除線

            • 格式:<s>為文本添加刪除線</s>

          • 為了彌補(bǔ) b、u、i、s標(biāo)簽的不足, W3C又推出了一組新的標(biāo)簽, 這些標(biāo)簽在顯示上看似和buis沒什么區(qū)別, 但是在語義上卻有重大區(qū)別

            • 格式:<del>已刪除的文本</del>

            • 格式:<em>強(qiáng)調(diào)內(nèi)容</em>

            • 格式:<ins>新插入的文本</ins>

            • 格式:<strong>著重內(nèi)容</strong>

            • strong作用: 著重內(nèi)容

            • ins(Inserted)作用: 新插入的文本

            • em(Emphasized)作用:強(qiáng)調(diào)內(nèi)容

            • del(Deleted)作用: 已刪除的文本

            • 其它更多詳見維基百科

          HTML實(shí)體

          • 我們想在頁面上輸出<h1>這些字符,但是HTML認(rèn)為這是一個(gè)標(biāo)簽, 所以如果需要輸出一些特殊的字符需要通過字符實(shí)體來實(shí)現(xiàn)

          • lt是英語less than 小于的意思, &lsaquo;可以在頁面上輸出一個(gè)小于符號

          • gt是英語greater than 大于的意思, &gt;可以在頁面上輸出一個(gè)大于符號

          • html中對空格,縮進(jìn),換行不敏感,如果同時(shí)出現(xiàn)多個(gè)空格縮進(jìn)或者執(zhí)行,頁面只會(huì)把它們當(dāng)作一個(gè)空格來解析。所以想要在html中輸出空格必須使用&nbsp;來實(shí)現(xiàn), 一個(gè)&nbsp;就代表一個(gè)空格

            • html對中文空格敏感, 也就是說可以顯示中文空格, 但是不推薦這樣使用

            • &nbsp;是英語non-breaking spacing, 翻譯為不打斷空格的意思

          關(guān)于課程的疑問和更多討論,可以登錄http://bbs.520it.com/forum.php?mod=viewthread&tid=2418

          主站蜘蛛池模板: 国产乱码精品一区二区三| 亚洲码欧美码一区二区三区 | 香蕉免费看一区二区三区| 国产伦精品一区二区三区免.费| 久热国产精品视频一区二区三区| 国产伦精品一区二区三区视频小说 | 久久久久久人妻一区二区三区 | 国产av一区二区精品久久凹凸| 一区二区不卡久久精品| 无码精品人妻一区二区三区漫画| 亚洲图片一区二区| 国模无码人体一区二区| 无码国产精品一区二区免费式影视| 天堂一区二区三区在线观看| 寂寞一区在线观看| 精品国产免费一区二区| 国产高清在线精品一区二区三区 | 国产剧情一区二区| 中文字幕在线观看一区二区三区| 无码精品一区二区三区| 久久久一区二区三区| 丰满少妇内射一区| 农村乱人伦一区二区| 精品视频一区二区三区在线观看 | 亚洲视频在线一区二区三区| 久久国产精品一区| 一区二区高清在线| 精品免费AV一区二区三区| 国产成人亚洲综合一区| 成人国产精品一区二区网站公司| 国产精品久久久久久麻豆一区| 精品无码一区二区三区爱欲 | 丝袜美腿一区二区三区| 亚洲AV无码一区二区三区在线观看| 丰满人妻一区二区三区视频| 无码日韩精品一区二区三区免费| 蜜桃视频一区二区三区在线观看| 亚洲国产一区国产亚洲| 亚洲.国产.欧美一区二区三区| 久久久精品日本一区二区三区| 色欲精品国产一区二区三区AV|