前言
昨天談了一些逆向課程,今天我們來review 一下社課的Web Security 簡報吧:)
社團經驗談
「社課人數一直減少,該怎麼辦?」
- 開會探討目前社課為何減少
- 針對性思考
- 講師授課台風
- 課程內容規劃
- 太難
- 太簡單
- 助教群
- 助教是否有確實幫助到學員解題
- 學員成就感
- 課程太難,沒有成就感
- 針對性思考
正文
-
電腦安全
- 預設使用者輸入永遠是危險的
- 攻擊者常常輸入一些非程式設計師,原先預先想要使用者輸入的字串
<script>alert("test");</script>
' OR 1='1
- 所以要
過濾
使用者的輸入
- 攻擊者常常輸入一些非程式設計師,原先預先想要使用者輸入的字串
- Secure by Default 原則
- 黑、白名單
- 最小權限原則
- 服務開的越多漏洞就會越多
- 建置環境時,應以安全原則為預設設定
- 許多工程師為了開發快速、方便,省去繁雜設定,
增加了資安的風險
- 新手開發工程師,不了解部屬設定
- 許多工程師為了開發快速、方便,省去繁雜設定,
- 服務本身一定有漏洞的風險,可能還沒被找出來(0day)
- 服務一多,漏洞被利用的機會,就會變多
- 單一服務有一些風險,可能不足以被利用
- 但多重服務,可構成
組合技
,結合可利用的漏洞
- 但多重服務,可構成
- 建置環境時,應以安全原則為預設設定
- 預設使用者輸入永遠是危險的
-
世界上,沒有絕對的安全
-
網頁安全
- HTTP
- 世界上常用的通訊協定之一
- 瀏覽器與伺服器溝通的協定
- 流程
- 瀏覽器跟伺服器提出請求(Request)
- 伺服器跟資料庫做資料查詢
- 伺服器回傳給瀏覽器回應(Response)
- Web應用程式越來越複雜
- 框架、開源服務被推出,一有漏洞就是凡使用者必通殺
- 不斷上更新,捨棄有漏洞的程式
- 多種Web架構、瀏覽器、伺服器
- 多種瀏覽器
- 多款伺服器
- HTTP 常見 Method
- GET
- 最常見的HTTP Method
- 在瀏覽器網址列打完網址,按Enter,就是送出GET請求
- 可以用url傳參數
http://aa.bb/?a=123&b=456
- POST
- 常見用於按扭轉跳、表單送出、傳送帳號密碼等等
- 上傳檔案
- 參數放在HTTP Request body中
- 差異
- GET
- HTTP
方法 | 傳送參數限制 | 傳送參數格式 |
---|---|---|
GET | 有長度限制 | ASCII字串 |
POST | 沒有限制 | 沒有限制 |
針對GET,瀏覽器會把http header和data一併發送出去,伺服器回傳200 OK;而對於POST,瀏覽器先發送header,伺服器回傳 100 continue,瀏覽器再發送data,伺服器響應200 ok。
-
- 介紹了HTTP的其他請求方法(HTTP Methods),除了GET和POST以外還有HEAD、OPTIONS、TRACE等。
- 每個請求方法都有不同的目的和使用情境,例如HEAD用於取得HTTP標頭資料而沒有回應主體,OPTIONS用於取得溝通方法,TRACE用於與伺服器執行迴路返回測試等。
- 可以參考HTTP 請求方法瞭解更多關於HTTP請求方法的詳細資訊。
-
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)