網站前端開發碰到的安全容易被人們忽視,因為大多人認為這些在客戶端瀏覽器運行的程式碼不會造成伺服器端的安全隱患,透過本文將簡單闡述網站前端中經常碰到的安全問題,以及一些因應策略
隨著前端技術的發展,安全問題已經從伺服器悄悄來到了每一個用戶的面前,盜取用戶資料, 製造惡意的可以自我複製的蠕蟲程式碼,讓病毒在用戶間傳播,使伺服器當掉. 更有甚者可能會在使用者不知覺得情況下,讓使用者成為攻擊者,這絕對不是駭人聽聞。富客戶端的應用越來越廣,前端的安全問題也隨之增多,今天就簡單介紹下一些常見的攻擊方式和預防攻擊辦法。
常見攻擊
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)”,當然你可以在上邊寫更多的內容。
策略:對屬性中可能存在截斷的一些字元進行過濾 屬性本身存在的 單引號和雙引號都需要進行轉碼。
惡意程式碼被顯示為html程式碼本身 (常見的html編輯器) 這種情況存在的問題最多,不再這裡舉例子了。
策略:最好對使用者輸入的html 標籤及標籤屬性做白名單過濾,也可以對一些存在漏洞的標籤和屬性進行專門過濾。
惡意程式碼被顯示為一段json字串 (透過 變數截斷 創造新的 惡意的js 變數 甚至是可執行的程式碼) 這個問題的關鍵是使用者輸入的資訊可能會成為頁面中js 程式碼的一部分。
策略:對屬性中可能存在截斷的一些字元進行過濾 屬性本身存在的 單引號和雙引號都需要進行轉碼。
對於crsf 和cookie 劫持
特點 隱蔽性比較高 有些時候是先利用xss 漏洞 然後再做 欺騙的
策略
透過 referer、token 或 驗證碼 來偵測使用者提交。
盡量不要在頁面的連結中暴漏任何與使用者唯一號(使用者id)有關的資訊。
對於使用者修改 刪除 提交的操作最好都使用post 操作 。
避免全站通用的cookie 嚴格的設定cookie的域。
ok 就寫到這裡~
上邊講的都是一些比較常見的安全問題,主要是從js hack 方面來講的,隨著前端技術的不斷發展進步,更多的安全問題可能會展現在我們面,對於開發者來說大多數的問題是可以在開發階段避免的,所以可怕的不是hack 可怕的是我們對自己的產品安全的鬆懈~。

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

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

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

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

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),