-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7f60a4d
commit b4aa60c
Showing
4 changed files
with
203 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
|
||
# 加密與hash | ||
|
||
# 對稱式加密(Symmetric Encryption) | ||
## 特點 | ||
* 單一密鑰: | ||
* 加密和解密使用相同的密鑰。 | ||
* 密鑰必須在加密方和解密方之間安全地共享。 | ||
* 加密速度快: | ||
* 對稱加密演算法通常比非對稱加密演算法快,適合處理大量數據。 | ||
* 密鑰管理困難: | ||
* 安全傳輸和存儲密鑰是主要挑戰,尤其在多方之間需要安全地共享密鑰。 | ||
## 常見演算法 | ||
* AES(Advanced Encryption Standard) | ||
* DES(Data Encryption Standard) | ||
* 3DES(Triple DES) | ||
* RC4 | ||
## 應用場景 | ||
* 資料的批量加密,例如磁碟加密、資料庫加密。 | ||
* 在 SSL/TLS 協議中,用於加密會話數據。 | ||
|
||
# 非對稱式加密(Asymmetric Encryption) | ||
## 特點 | ||
* 公鑰和私鑰: | ||
* 使用一對相關聯的密鑰:公鑰(公開)和私鑰(保密)。 | ||
* 公鑰用於加密,私鑰用於解密,反之亦然。 | ||
* 加密速度慢: | ||
* 非對稱加密演算法相對較慢,通常只用於加密少量數據或加密對稱加密的密鑰。 | ||
* 密鑰管理簡單: | ||
* 只需安全地保護私鑰即可,公鑰可以自由分發。 | ||
## 常見演算法 | ||
* RSA(Rivest-Shamir-Adleman) | ||
* ECC(Elliptic Curve Cryptography) | ||
* DSA(Digital Signature Algorithm) | ||
## 應用場景 | ||
* 數字簽名和證書驗證。 | ||
* 安全密鑰交換,例如在 SSL/TLS 握手過程中。 | ||
* 加密電子郵件和數據傳輸。 | ||
|
||
# 對稱式加密和非對稱式加密比較 | ||
| 特點 | 對稱式加密 | 非對稱式加密| | ||
|-----|-----|------| | ||
| **密鑰數量** | 一個密鑰(加密和解密相同) | 一對密鑰(公鑰和私鑰)| | ||
| **加密/解密速度** | 快 | 慢 | | ||
| **安全性** | 密鑰共享和管理困難,易受竊取風險| 安全性高,私鑰保護難度小 | | ||
| **應用場景** | 大量數據加密、實時加密| 密鑰交換、數字簽名、證書驗證 | | ||
| **密鑰管理** | 困難,需要安全的密鑰分發和管理 | 簡單,只需保護私鑰 | | ||
| **常見演算法** | AES, DES, 3DES, RC4 | RSA, ECC, DSA| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# XSS(Cross-Site Scripting) | ||
|
||
跨網站指令碼攻擊(XSS)是一種安全漏洞,允許攻擊者在受害者的瀏覽器中執行惡意指令碼。 | ||
這些指令碼通常被注入到合法的網頁或應用程式中,目的是竊取資料、篡改內容或進一步攻擊其他使用者。 | ||
|
||
## 對攻擊者的優點 | ||
* 低技術門檻:XSS 攻擊相對簡單,只需注入一段惡意指令碼。 | ||
* 廣泛影響:一次成功的 XSS 攻擊可以影響大量使用者,特別是如果目標網站有大量訪客。 | ||
* 難以檢測:由於 XSS 攻擊通常在受害者的瀏覽器中執行,伺服器很難檢測到這種攻擊。 | ||
|
||
## 場景 | ||
* 用戶輸入未經處理:網站或應用程序未對用戶輸入進行適當的驗證和過濾,導致惡意指令碼被注入。 | ||
* 評論區或論壇:攻擊者在評論區、論壇或其他用戶生成內容的地方注入惡意指令碼。 | ||
* 電子郵件或消息:攻擊者通過電子郵件或消息發送包含惡意指令碼的鏈接,誘導受害者點擊。 | ||
|
||
## 類型 | ||
* 存儲型(Stored XSS):惡意指令碼被永久存儲在目標伺服器上,例如在數據庫中。當其他用戶請求包含這些指令碼的頁面時,指令碼就會被執行。 | ||
* 反射型(Reflected XSS):惡意指令碼通過 URL 或其他輸入參數被立即反射回用戶端並執行。這種攻擊通常需要攻擊者誘導受害者點擊惡意鏈接。 | ||
* 基於 DOM(DOM-based XSS):惡意指令碼直接在用戶端被執行,並且不涉及伺服器的響應。這種攻擊利用了網頁的 Document Object Model (DOM)。 | ||
|
||
|
||
## 防禦措施 | ||
* 輸入驗證與過濾:對所有用戶輸入進行嚴格的驗證和過濾,確保不包含惡意指令碼。 | ||
* 輸出編碼:對用戶輸入的數據在顯示之前進行編碼,防止惡意指令碼被執行。 | ||
* escape 函數用於將用戶輸入進行 HTML 編碼,從而防止 XSS 攻擊 | ||
* 使用安全的 API:避免使用會產生 XSS 漏洞的函數或方法,優先使用安全的 API。 | ||
* 內容安全政策(CSP):配置內容安全政策,限制網頁可以加載的資源,以減少 XSS 攻擊的可能性。 | ||
## ref | ||
* GPT |