Web世界中潛藏的危機 - 跨網站指令碼(XSS)

阿Han
·
·
IPFS
·
透過簡短的Web知識,讓我們更加了解我們平常上網的安全性

互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。

在前幾篇我們介紹了「同源政策(Same Origin Policy)」與「Web - 跨來源資源共用(CORS)」的基本概念之後,大致上已經了解瀏覽器如何做個守門員,攔截非法的請求/回應,接下來我們就來談談駭客如何繞過「同源政策(Same Origin Policy)」進行跨站腳本攻擊的XSS(Cross-Site Scripting)。

由於Web越來越豐富,許多動畫、特效都能在Web上完成,這些都歸功於Javascript,但也由於可程式化的便利性,導致駭客可以利用這樣的特性,注入有害的腳本,造成資安風險。

為什麼Cross-Site Scripting要簡稱為XSS呢? 因為避免與CSS混淆,因此簡稱為XSS。

試想,當國家與國家之間透過有限度地開放跨來源資源共用(CORS)時,難免存在一些有心人士,繞過政策進行地下活動,就如同現實世界的偷渡、詐騙皆被搬到Web世界運行,而以下將介紹這樣的攻擊類型有哪些? 對我們來說有什麼危害? 我們身為使用者又應該注意什麼呢?

🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔

攻擊的類型有哪些?

儲存型(Stored XSS)

這種類型的攻擊方式就是將惡意的指令碼,注入到網站伺服器進行儲存,而當使用者進到駭客注入的功能區塊時,當滿足特定條件(按下按鈕、觀看圖片...)之後觸發惡意腳本,最常見的例子就是留言版了,這是最普遍能夠輸入文字(指令碼)的入口,並且也會被儲存於資料庫中。

  1. 駭客將惡意代碼寫到網站伺服器儲存的DB。
  2. 使用者打開網站時,載入惡意程式碼。
  3. 惡意程式碼竊取個人資訊或者冒充用戶身分進行深層攻擊。

反射型(Reflected XSS)

  1. 駭客發送夾帶惡意連結的信件,誘導受害者點擊。
  2. 受害者點擊後,導至駭客架設的網站。
  3. 透過連結的參數觸發惡意腳本,進而攻擊、竊取用戶資訊。

有些也會直接夾帶腳本參數如下:

<http://www.domain-1.com/edit?id=><script>alert(1);</script>

可能造成的危害

  • 如果攻擊者僅是惡作劇, 撰寫出一個拖垮資源的腳本, 那麼很可能導致我們的瀏覽器無法正常運作, 導致當機狀態。
  • 身份被冒用, 進入瀏覽過的網站,盜取重要個人資訊。
  • 將使用者瀏覽器導向駭客架設網站, 下載後門程式到使用者電腦。

如何防範?

  • 信件中若有可疑的主旨、內文、附件,就盡量不要直接點擊,可以透過後面的掃描工具進行掃描,確認安全無虞之後再進行下一步。
  • 假設我們身為網站開發者,應該對這樣的攻擊具有基本的認識,並且於輸入的入口使用過濾套件來避免XSS的注入攻擊,原則上就是不要相信使用者的任何輸入。
  • 網站開發者對於Cookie應設定HttpOnly的屬性,避免利用Cookie盜取個人資訊。
  • 設定內容安全策略(CSP),明確的定義哪些內容(HTML、圖片...等)可以被加載,這部分後面的篇章會談到。

幫助我們進行掃描的好工具

以下幾個工具可以讓我們發現到可疑連結時,先丟到這邊進行掃描,若確認安全無誤,在進行點擊,而以下的工具網址,避免讀者們擔心,故將原始網址位置輸出,若有疑慮可以自行Google。

🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔

資源參考

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

阿Han 文字是留下記錄的一種媒介,將知識吸收轉化後輸出成文字進行保存。 ☕️ https://liker.land/willhanchen/civic
  • 来自作者
  • 相关推荐

【Google Sheet 好好玩】 強大的翻譯工具庫

【勞工權益知多少】原來工資不只有基本薪資,還包含了經常性薪資、非經常性薪資...

【程式語言 — Go】關於JSON序列化、反序列化