iT邦幫忙

0

淺談 Web 應用系統安全

  • 分享至 

  • xImage
  •  

跨站腳本攻擊(XSS)

攻擊

XXS就是透過網頁沒有適當篩選、處理文字造成的漏洞
例如有用戶將<script>alert()</script>輸入進訊息輸入欄位然後發給別人
要是沒有嚴格篩選就會在收到訊息者的瀏覽器執行該腳本
甚至可能將cookies等敏感資訊發送給駭客
其他XXS注入方法還有利用網址進行注入<img>標籤的onerror參數等等

防禦

  • 非必要就避免使用documnt.wirte、element.innerHTML,以innerText取代較佳
  • 使用第三方套件過濾文字
  • 設定CSP網頁白名單
  • 設定cookies為HttpOnly

跨站請求偽造(CSRF)

攻擊

最常見的攻擊方式有兩種
第一種是編造惡意的網址利用開啟者的身分對某API端點發送GET請求
甚至還可以利用<img>、<video>等標籤的src發送
第二種是在駭客自己的網站建立一個假表單
並且當使用者按下送出後將資料發送到目標的API端點
以利用使用者身分進行POST請求

防禦

  • 可能改變伺服器狀態的請求使用POST發出,並判斷其referer和orign
  • 使用CSRF符記

XML外部單元體(XXE)

攻擊

大部分做法是將含有外部單元體標記的XML物件發送到伺服器
使伺服器讀取之後回傳含有外部單元體內容的資訊
可能讓伺服器洩漏機密檔案
類似這樣的XML:

防禦

  • 正確的設定XML解譯器
  • 如果可以就使用其他資料型態(如JSON)

注入漏洞

攻擊

主要分為SQL注入、程式碼注入和命令注入三類

SQL注入就是最經典的一種攻擊手段
例如某個網站的登入驗證SQL查詢代碼為
strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"
若惡意注入
userName = "1' OR '1'='1";
passWord = "1' OR '1'='1";
則可不用帳號密碼登入網站
更嚴重還可能資料庫損毀、洩漏等等後果

程式碼注入和命令注入做法概念也差不多
只是注入在不同的地方
這裡就不多做說明了

防禦

  • 遵循最小權限原則,只提供給其能完成工作的所需權限
  • 過濾非法字元
  • 避免網站打印出SQL錯誤資訊

阻斷服務(DoS)

攻擊

若系統內有編寫不佳的Regex
或者較消耗系統性能的程式邏輯
只要攻擊者對該API端點大量發送請求就很容易達到攻擊目的
通常會造成伺服器崩潰、效能大幅下降等

還有DDos(分散式阻斷服務攻擊)也是Dos攻擊的一種
由一個駭客發起
讓大範圍的網路機器人、殭屍網路或任何已經被操控的連網裝置對一台伺服器發送大量垃圾請求
一樣會導致伺服器崩潰、效能大幅下降等

防禦

  • DoS只要把程式邏輯、Regex搞好就好了
  • DDoS的部分可以...
    • 過濾異常流量
    • 限制異常IP發出的請求
    • 提升設備性能、增加頻寬

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言