RESTful Web 服務 - 安全性



由於 RESTful Web 服務使用 HTTP URL 路徑,因此以與保護網站相同的方式保護 RESTful Web 服務非常重要。

以下是設計 RESTful Web 服務時應遵循的最佳實踐:

  • 驗證 - 在伺服器上驗證所有輸入。保護您的伺服器免受 SQL 或 NoSQL 注入攻擊。

  • 基於會話的身份驗證 - 使用基於會話的身份驗證來驗證每次向 Web 服務方法發出請求時的使用者。

  • URL 中不包含敏感資料 - 切勿在 URL 中使用使用者名稱、密碼或會話令牌,這些值應透過 POST 方法傳遞給 Web 服務。

  • 限制方法執行 - 限制對 GET、POST 和 DELETE 方法等方法的使用。GET 方法不應能夠刪除資料。

  • 驗證格式錯誤的 XML/JSON - 檢查傳遞給 Web 服務方法的輸入是否格式正確。

  • 丟擲通用錯誤訊息 - Web 服務方法應使用 HTTP 錯誤訊息(例如 403 來顯示訪問被禁止等)。

HTTP 程式碼

序號 HTTP 程式碼及說明

1

200

OK - 表示成功。

2

201

CREATED - 當使用 POST 或 PUT 請求成功建立資源時。使用 location 頭返回新建立資源的連結。

3

204

NO CONTENT - 當響應正文為空時。例如,DELETE 請求。

4

304

NOT MODIFIED - 用於在條件 GET 請求的情況下減少網路頻寬使用。響應正文應為空。標頭應包含日期、位置等。

5

400

BAD REQUEST - 表示提供了無效輸入。例如,驗證錯誤、資料缺失。

6

401

UNAUTHORIZED - 表示使用者使用無效或錯誤的身份驗證令牌。

7

403

FORBIDDEN - 表示使用者無權訪問所使用方法。例如,無管理員許可權的刪除訪問。

8

404

NOT FOUND - 表示該方法不可用。

9

409

CONFLICT - 表示在執行方法時發生衝突情況。例如,新增重複條目。

10

500

INTERNAL SERVER ERROR - 表示伺服器在執行方法時丟擲了一些異常。

廣告