[資安補帖] 008─Day8─Web Security

飛飛 | 2023-05-21

前言

昨天談了一些逆向課程,今天我們來review 一下社課的Web Security 簡報吧:)

社團經驗談

「社課人數一直減少,該怎麼辦?」

  • 開會探討目前社課為何減少
    • 針對性思考
      • 講師授課台風
      • 課程內容規劃
        • 太難
        • 太簡單
      • 助教群
        • 助教是否有確實幫助到學員解題
      • 學員成就感
        • 課程太難,沒有成就感

正文

  • 電腦安全

    • 預設使用者輸入永遠是危險的
      • 攻擊者常常輸入一些非程式設計師,原先預先想要使用者輸入的字串
        • <script>alert("test");</script>
        • ' OR 1='1
      • 所以要過濾使用者的輸入
    • Secure by Default 原則
      • 黑、白名單
      • 最小權限原則
    • 服務開的越多漏洞就會越多
      • 建置環境時,應以安全原則為預設設定
        • 許多工程師為了開發快速、方便,省去繁雜設定,增加了資安的風險
        • 新手開發工程師,不了解部屬設定
      • 服務本身一定有漏洞的風險,可能還沒被找出來(0day)
        • 服務一多,漏洞被利用的機會,就會變多
      • 單一服務有一些風險,可能不足以被利用
        • 但多重服務,可構成組合技,結合可利用的漏洞
  • 世界上,沒有絕對的安全

  • 網頁安全

    • HTTP
      • 世界上常用的通訊協定之一
      • 瀏覽器與伺服器溝通的協定
      • 流程
        1. 瀏覽器跟伺服器提出請求(Request)
        2. 伺服器跟資料庫做資料查詢
        3. 伺服器回傳給瀏覽器回應(Response)
    • Web應用程式越來越複雜
    • 框架、開源服務被推出,一有漏洞就是凡使用者必通殺
      • 不斷上更新,捨棄有漏洞的程式
    • 多種Web架構、瀏覽器、伺服器
      • 多種瀏覽器
      • 多款伺服器
    • HTTP 常見 Method
      • GET
        • 最常見的HTTP Method
        • 在瀏覽器網址列打完網址,按Enter,就是送出GET請求
        • 可以用url傳參數http://aa.bb/?a=123&b=456
      • POST
        • 常見用於按扭轉跳、表單送出、傳送帳號密碼等等
        • 上傳檔案
        • 參數放在HTTP Request body中
      • 差異
方法 傳送參數限制 傳送參數格式
GET 有長度限制 ASCII字串
POST 沒有限制 沒有限制

針對GET,瀏覽器會把http header和data一併發送出去,伺服器回傳200 OK;而對於POST,瀏覽器先發送header,伺服器回傳 100 continue,瀏覽器再發送data,伺服器響應200 ok。

  1. 前端好文之GET/POST區別

    • 介紹了HTTP的其他請求方法(HTTP Methods),除了GET和POST以外還有HEAD、OPTIONS、TRACE等。
    • 每個請求方法都有不同的目的和使用情境,例如HEAD用於取得HTTP標頭資料而沒有回應主體,OPTIONS用於取得溝通方法,TRACE用於與伺服器執行迴路返回測試等。
    • 可以參考HTTP 請求方法瞭解更多關於HTTP請求方法的詳細資訊。
  2. HTTP狀態碼(HTTP Status code)

    • 在前一段提到了幾個常見的HTTP狀態碼,包括200、301、403、404、451和500。
    • 每個狀態碼都有特定的定義和含義,用於指示伺服器對於客戶端的請求進行回應時的結果。
    • 可以參考相關資源或網站瞭解更多不同狀態碼的定義和使用情境。
狀態碼 定義
200 請求已成功,請求所希望的回應頭或資料體將隨此回應返回。
301 被請求的資源已永久移動到新位置。
403 伺服器已經理解請求,但是拒絕執行它。
404 請求失敗,請求所希望得到的資源未被在伺服器上發現。
451 該存取因法律的要求而被拒絕。
500 伺服器遇到了一個未曾預料的狀況。

參考資料

  • Web 安全之基本原则
    • 談安全的三要素:機密性(Confidentiality)、完整性(Integrity)、可用性(Availability)
    • 談安全評估,分四等分探討:資產等級劃分、威脅分析、風險分析、確認解決方案。
    • 談安全原則
      • Secure By default原則
      • 縱深防禦(Defense in depth)
      • 程式碼分離原則
      • 不可預測性原則(Unpredictable)