首頁 web前端 html教學 網頁前端常見的攻擊方式與預防攻擊的方法_HTML/Xhtml_網頁製作

網頁前端常見的攻擊方式與預防攻擊的方法_HTML/Xhtml_網頁製作

May 16, 2016 pm 04:41 PM
攻擊方式 預防攻擊

網站前端開發碰到的安全容易被人們忽視,因為大多人認為這些在客戶端瀏覽器運行的程式碼不會造成伺服器端的安全隱患,透過本文將簡單闡述網站前端中經常碰到的安全問題,以及一些因應策略

隨著前端技術的發展,安全問題已經從伺服器悄悄來到了每一個用戶的面前,盜取用戶資料, 製造惡意的可以自我複製的蠕蟲程式碼,讓病毒在用戶間傳播,使伺服器當掉. 更有甚者可能會在使用者不知覺得情況下,讓使用者成為攻擊者,這絕對不是駭人聽聞。富客戶端的應用越來越廣,前端的安全問題也隨之增多,今天就簡單介紹下一些常見的攻擊方式和預防攻擊辦法。

 

常見攻擊

XSS (Cross Site Script) ,跨站腳本攻擊。 它指的是惡意攻擊者往Web頁面插入惡意html程式碼,當使用者瀏覽該頁之時,嵌入的惡意html程式碼會被執行,從而達到惡意使用者的特殊目的。 XSS屬於被動式的攻擊,因為其被動且不好利用,所以許多人常常呼略其危害性。但隨著前端技術的不斷進步富客戶端的應用越來越多,這方面的問題越來越受到關注。舉個簡單例子: 假如你現在是sns站點上一個用戶,發布信息的功能存在漏洞可以執行js 你在此刻輸入一個惡意腳本,那麼當前所有看到你新信息的人的瀏覽器都會執行這個腳本彈出提示框(很酷吧彈出廣告:)),如果你做一些更為激進行為呢後果難以想像。

CSRF(Cross Site Request Forgery),跨站點偽造請求。 顧名思義就是 透過偽造連線請求在使用者不知情的情況下,讓使用者以自己的身分來完成攻擊者需要達到的一些目的。 csrf 的攻擊不同於xss csrf 需要被攻擊者的主動行為觸發。這樣聽來似乎是有「被釣魚」的嫌疑犯哈哈。
多視窗瀏覽器這這方面似乎是有助紂為虐的嫌疑,因為開啟的新視窗是具有當前所有會話的,如果是單瀏覽器視窗類似ie6 就不會存在這樣的問題,因為每個視窗都是一個獨立的進程。舉個簡單例子 : 你正在玩白社會, 看到有人發了一個連接,你點擊過去,然後這個連接裡面偽造了一個送禮物的表單,這僅僅是一個簡單的例子,問題可見一般。

cookie劫持,透過取得頁面的權限,在頁面中寫一個簡單的到惡意網站的請求,並攜帶使用者的cookie 取得cookie 就可以直以被盜使用者的身份登入站點。這就是cookie 劫持。舉個簡單例子: 某人寫了一篇很有意思的日誌,然後分享給大家,很多人都點擊查看並且分享了該日誌,一切似乎都很正常,然而寫日誌的人卻另有用心,在日誌中偷偷隱藏了一個對站外的請求,那麼所有看過這片日誌的人都會在不知情的情況下把自己的cookie 發送給了某人,那麼他可以通過任意一個人的cookie 來登錄這個人的帳戶。


我們該怎麼做?

大致可以分為兩類 1 一般使用者 2網站開發人員。

首先我們來說說做為一個一般的web產品使用者,很多時候我們是被動的,是在不知情的情況下被利用的。那我們可以:
1 對於安全等級較高的web應用存取 需要開啟一個獨立瀏覽器視窗。
2 對於陌生人發布的連結最好也是複製然後在新開的視窗中打開,當然最好的辦法就是無視 – -。

對於開發人員來說我們得從相對詳細的一些角度來分析:
對於xss 攻擊特點是攻擊者的程式碼必須能取得使用者瀏覽器端的執行權限,那麼程式碼是從哪裡來的呢,想要杜絕此類攻擊出現其實可以在入口和出口進行嚴格的過濾,這樣的雙重保險應當說99% 的類似問題就被我們解決掉了,另外的1% 是那些蹩腳的瀏覽器帶來的後遺症,相信在未來這種問題會越來越少的。

這裡我對xss漏洞的形式作了一些整理

惡意程式碼值被顯示為某一標籤的內容(如果輸入的是html 則html會被解析)例如你輸入使用者名稱更新後使用者名稱會顯示到頁面中的某一個標籤內如果你輸入的是

popper.w

那麼如果不做過濾直接顯示到頁面, 會引進一個第三方的js 程式碼並且會執行。

策略:在不需要html輸入的地方對html 標籤 及一些特殊字元( ” & 等等 )做過濾,將其轉換為不被瀏覽器解釋執行的字元

惡意程式碼被顯示為某一標籤的屬性(透過用「 將屬性截斷來開闢新的屬性或惡意方法) 這種情況往往是是開發人員為了實現功能可能會在某些dom標籤上記錄一些使用者輸入的資訊例如你輸入的使用者名稱會在頁面中的標籤中以title 的形式出現這時候如果你輸入的是精心設計的內容那麼看看這個

popper.w" onclick="alert(1)

這裡我實際上輸入的內容是“popper.w” onclick=”alert(1)”,當然你可以在上邊寫更多的內容。

策略:對屬性中可能存在截斷的一些字元進行過濾 屬性本身存在的 單引號和雙引號都需要進行轉碼。

惡意程式碼被顯示為html程式碼本身 (常見的html編輯器) 這種情況存在的問題最多,不再這裡舉例子了。

策略:最好對使用者輸入的html 標籤及標籤屬性做白名單過濾,也可以對一些存在漏洞的標籤和屬性進行專門過濾。

惡意程式碼被顯示為一段json字串 (透過 變數截斷 創造新的 惡意的js 變數 甚至是可執行的程式碼) 這個問題的關鍵是使用者輸入的資訊可能會成為頁面中js 程式碼的一部分。

策略:對屬性中可能存在截斷的一些字元進行過濾 屬性本身存在的 單引號和雙引號都需要進行轉碼。

對於crsf 和cookie 劫持

特點 隱蔽性比較高 有些時候是先利用xss 漏洞 然後再做 欺騙的

策略
透過 referer、token 或 驗證碼 來偵測使用者提交。
盡量不要在頁面的連結中暴漏任何與使用者唯一號(使用者id)有關的資訊。
對於使用者修改 刪除 提交的操作最好都使用post 操作 。
避免全站通用的cookie 嚴格的設定cookie的域。

ok 就寫到這裡~

上邊講的都是一些比較常見的安全問題,主要是從js hack 方面來講的,隨著前端技術的不斷發展進步,更多的安全問題可能會展現在我們面,對於開發者來說大多數的問題是可以在開發階段避免的,所以可怕的不是hack 可怕的是我們對自己的產品安全的鬆懈~。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1248
24
了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML:結構,CSS:樣式,JavaScript:行為 HTML:結構,CSS:樣式,JavaScript:行為 Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web開發中的作用分別是:1.HTML定義網頁結構,2.CSS控製網頁樣式,3.JavaScript添加動態行為。它們共同構建了現代網站的框架、美觀和交互性。

HTML,CSS和JavaScript的未來:網絡開發趨勢 HTML,CSS和JavaScript的未來:網絡開發趨勢 Apr 19, 2025 am 12:02 AM

HTML的未來趨勢是語義化和Web組件,CSS的未來趨勢是CSS-in-JS和CSSHoudini,JavaScript的未來趨勢是WebAssembly和Serverless。 1.HTML的語義化提高可訪問性和SEO效果,Web組件提升開發效率但需注意瀏覽器兼容性。 2.CSS-in-JS增強樣式管理靈活性但可能增大文件體積,CSSHoudini允許直接操作CSS渲染。 3.WebAssembly優化瀏覽器應用性能但學習曲線陡,Serverless簡化開發但需優化冷啟動問題。

HTML的未來:網絡設計的發展和趨勢 HTML的未來:網絡設計的發展和趨勢 Apr 17, 2025 am 12:12 AM

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

HTML與CSS vs. JavaScript:比較概述 HTML與CSS vs. JavaScript:比較概述 Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在網頁開發中的角色分別是:HTML負責內容結構,CSS負責樣式,JavaScript負責動態行為。 1.HTML通過標籤定義網頁結構和內容,確保語義化。 2.CSS通過選擇器和屬性控製網頁樣式,使其美觀易讀。 3.JavaScript通過腳本控製網頁行為,實現動態和交互功能。

HTML:建立網頁的結構 HTML:建立網頁的結構 Apr 14, 2025 am 12:14 AM

HTML是構建網頁結構的基石。 1.HTML定義內容結構和語義,使用、、等標籤。 2.提供語義化標記,如、、等,提升SEO效果。 3.通過標籤實現用戶交互,需注意表單驗證。 4.使用、等高級元素結合JavaScript實現動態效果。 5.常見錯誤包括標籤未閉合和屬性值未加引號,需使用驗證工具。 6.優化策略包括減少HTTP請求、壓縮HTML、使用語義化標籤等。

HTML的角色:構建Web內容 HTML的角色:構建Web內容 Apr 11, 2025 am 12:12 AM

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

HTML:是編程語言還是其他? HTML:是編程語言還是其他? Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

See all articles