XSS攻擊

轉載:http://www.imooc.com/article/13553

XSS攻擊是什么XSS是跨站腳本攻擊的縮寫问畅,是一種網(wǎng)站應用程序的安全漏洞攻擊抬虽,是代碼注入的一種嚣州。
通常是通過利用網(wǎng)頁開發(fā)時留下的漏洞虎忌,通過巧妙的方法注入惡意指令代碼到網(wǎng)頁,使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁程序椿疗。
這些惡意網(wǎng)頁程序通常是JavaScript漏峰,但實際上也可以包括Java,VBScript届榄,ActiveX浅乔,F(xiàn)lash或者甚至是普通的HTML。
攻擊成功后铝条,攻擊者可能得到更高的權限(如執(zhí)行一些操作)童擎、私密網(wǎng)頁內容、會話和cookie等各種內容攻晒。

XSS攻擊基本原理——代碼注入在web的世界里有各種各樣的語言,于是乎對于語句的解析大家各不相同班挖,有一些語句在一種語言里是合法的鲁捏,但是在另外一種語言里是非法的。這種二義性使得黑客可以用代碼注入的方式進行攻擊——將惡意代碼注入合法代碼里隱藏起來,再誘發(fā)惡意代碼给梅,從而進行各種各樣的非法活動假丧。只要破壞跨層協(xié)議的數(shù)據(jù)/指令的構造,我們就能攻擊动羽。歷史悠久的SQL注入
和XSS注入
都是這種攻擊方式的典范“悖現(xiàn)如今,隨著參數(shù)化查詢的普及运吓,我們已經離SQL注入
很遠了渴邦。但是,歷史同樣悠久的XSS
卻沒有遠離我們拘哨。XSS
的基本實現(xiàn)思路很簡單——比如持久型XSS
通過一些正常的站內交互途徑谋梭,例如發(fā)布評論,提交含有JavaScript
的內容文本倦青。這時服務器端如果沒有過濾或轉義掉這些腳本瓮床,作為內容發(fā)布到了頁面上,其他用戶訪問這個頁面的時候就會運行這些腳本产镐,從而被攻擊隘庄。

攻擊分類舉例反射型XSS
反射性XSS,也就是被動的非持久性XSS癣亚。誘騙用戶點擊URL帶攻擊代碼的鏈接丑掺,服務器解析后響應,在返回的響應內容中隱藏和嵌入攻擊者的XSS代碼逃糟,被瀏覽器執(zhí)行吼鱼,從而攻擊用戶。URL可能被用戶懷疑绰咽,但是可以通過短網(wǎng)址服務將之縮短菇肃,從而隱藏自己。
持久型XSS
也叫存儲型XSS——主動提交惡意數(shù)據(jù)到服務器取募,攻擊者在數(shù)據(jù)中嵌入代碼琐谤,這樣當其他用戶請求后,服務器從數(shù)據(jù)庫中查詢數(shù)據(jù)并發(fā)給用戶玩敏,用戶瀏覽此類頁面時就可能受到攻擊斗忌。可以描述為:惡意用戶的HTML或JS輸入服務器->進入數(shù)據(jù)庫->服務器響應時查詢數(shù)據(jù)庫->用戶瀏覽器旺聚。
DOM-based XSS
基于DOM的XSS织阳,通過對具體DOM代碼進行分析,根據(jù)實際情況構造dom節(jié)點進行XSS跨站腳本攻擊砰粹。
注:domxss取決于輸出位置唧躲,并不取決于輸出環(huán)境,因此domxss既有可能是反射型的,也有可能是存儲型的弄痹。dom-based與非dom-based饭入,反射和存儲是兩個不同的分類標準。

防范記住一句至理名言——“所有用戶輸入都是不可信的肛真⌒扯”(注意: 攻擊代碼不一定在<script></script>中)
使用XSS Filter
輸入過濾,對用戶提交的數(shù)據(jù)進行有效性驗證蚓让,僅接受指定長度范圍內并符合我們期望格式的的內容提交乾忱,阻止或者忽略除此外的其他任何數(shù)據(jù)。
輸出轉義凭疮,當需要將一個字符串輸出到Web網(wǎng)頁時饭耳,同時又不確定這個字符串中是否包括XSS特殊字符,為了確保輸出內容的完整性和正確性执解,輸出HTML屬性時可以使用HTML轉義編碼(HTMLEncode)進行處理寞肖,輸出到<script>中,可以進行JS編碼衰腌。

使用 HttpOnly Cookie
將重要的cookie標記為httponly新蟆,這樣的話當瀏覽器向Web服務器發(fā)起請求的時就會帶上cookie
字段,但是在js
腳本中卻不能訪問這個cookie右蕊,這樣就避免了XSS攻擊利用JavaScript
的document.cookie
獲取cookie
琼稻。
困難和幸運
真正麻煩的是,在一些場合我們要允許用戶輸入HTML饶囚,又要過濾其中的腳本帕翻。這就要求我們對代碼小心地進行轉義。否則萝风,我們可能既獲取不了用戶的正確輸入嘀掸,又被XSS攻擊。幸好规惰,由于XSS臭名昭著歷史悠久又極其危險睬塌,現(xiàn)代web開發(fā)框架如vue.js
、react.js
等歇万,在設計的時候就考慮了XSS攻擊對html插值進行了更進一步的抽象揩晴、過濾和轉義,我們只要熟練正確地使用他們贪磺,就可以在大部分情況下避免XSS攻擊硫兰。同時,許多基于MVVM
框架的SPA
(單頁應用)不需要刷新URL來控制view寒锚,這樣大大防止了XSS隱患劫映。另外呻粹,我們還可以用一些防火墻來阻止XSS的運行。
作者: 沐雨一橙風 鏈接:http://www.imooc.com/article/13553來源:慕課網(wǎng)本文原創(chuàng)發(fā)布于慕課網(wǎng) 苏研,轉載請注明出處,謝謝合作腮郊!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末摹蘑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子轧飞,更是在濱河造成了極大的恐慌衅鹿,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件过咬,死亡現(xiàn)場離奇詭異大渤,居然都是意外死亡,警方通過查閱死者的電腦和手機掸绞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門泵三,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衔掸,你說我怎么就攤上這事烫幕。” “怎么了敞映?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵较曼,是天一觀的道長。 經常有香客問我振愿,道長捷犹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任冕末,我火速辦了婚禮萍歉,結果婚禮上,老公的妹妹穿的比我還像新娘栓霜。我一直安慰自己翠桦,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布胳蛮。 她就那樣靜靜地躺著销凑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仅炊。 梳的紋絲不亂的頭發(fā)上斗幼,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音抚垄,去河邊找鬼蜕窿。 笑死谋逻,一個胖子當著我的面吹牛,可吹牛的內容都是我干的桐经。 我是一名探鬼主播毁兆,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阴挣!你這毒婦竟也來了气堕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤畔咧,失蹤者是張志新(化名)和其女友劉穎茎芭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體誓沸,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡梅桩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拜隧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宿百。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虹蓄,靈堂內的尸體忽然破棺而出犀呼,到底是詐尸還是另有隱情,我是刑警寧澤薇组,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布外臂,位于F島的核電站,受9級特大地震影響律胀,放射性物質發(fā)生泄漏宋光。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一炭菌、第九天 我趴在偏房一處隱蔽的房頂上張望罪佳。 院中可真熱鬧,春花似錦黑低、人聲如沸赘艳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕾管。三九已至,卻和暖如春菩暗,著一層夾襖步出監(jiān)牢的瞬間掰曾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工停团, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旷坦,地道東北人掏熬。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像秒梅,于是被迫代替她去往敵國和親旗芬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容