鍍金池/ 教程/ Java/ RESTful Web 服務 - 安全性
RESTful Web 服務 - 環(huán)境設置
RESTful Web 服務 - 資源
RESTful Web 服務 - 第一個應用
RESTful Web 服務 - 緩存
RESTful Web 服務 - 方法
RESTful Web 服務 - 安全性
RESTful Web 服務 - 尋址
RESTful Web 服務 - 無狀態(tài)
RESTful Web 服務 - Java (JAX-RS)
RESTful Web 服務 - 介紹
RESTful Web 服務 - 消息

RESTful Web 服務 - 安全性

因為 RESTful Web 服務使用 HTTP URLs 路徑,因此以保護網(wǎng)站同樣的方式維護 RESTful Web 服務是非常重要的。以下是設計 RESTful Web 服務時要遵循的最佳實踐。

  • 驗證 - 驗證服務器上的所有輸入。保護服務器免受 SQL 或者 NoSQL 注入攻擊。
  • 基于會話的認證 - 請求一個 Web 服務方法時使用基于會話的認證對用戶進行身份驗證。
  • URL 不要有敏感數(shù)據(jù) - 永遠不要在 URL 中使用用戶名,密碼或者會話標記,這些值應該通過 POST 方法傳遞給 Web 服務。
  • 限制方法執(zhí)行 - 允許限制使用方法,比如 GET,POST,DELET。GET 方法不應該能夠刪除數(shù)據(jù)。
  • 驗證有缺陷的 XML/JSON - 檢查格式良好的輸入傳遞給 Web 服務方法。
  • 拋出通用錯誤消息 - Web 服務方法應該使用 HTTP 錯誤消息,比如 403 展示禁止訪問等。

HTTP 狀態(tài)碼

編號 HTTP 狀態(tài)碼 & 描述
1 200
OK ,顯示成功。
2 201
CREATED ,當資源使用 POST 或者 PUT 請求建立成功時。使用位置頭返回新建資源的鏈接。
3 204
NO CONTENT ,當響應體為空時。比如,DELETE 請求。
4 304
NOT MODIFIED 在有條件的 GET 請求的情況下用于減少網(wǎng)絡帶寬的使用。響應體應該為空。頭信息應該包含日期,位置等。
5 400
BAD REQUEST ,指出提供的輸入無效。比如驗證錯誤,數(shù)據(jù)缺失。
6 401
UNAUTHORIZED ,指出用戶正在使用無效的或者錯誤的認證令牌。
7 403
FORBIDDEN ,指出用戶沒有使用訪問方法。比如,沒有管理員權限訪問刪除操作。
8 404
NOT FOUND ,指出該方法不可用。
9 409
CONFLICT ,指出執(zhí)行方法時沖突,比如添加重復的條目。
10 500
INTERNAL SERVER ERROR ,指出執(zhí)行該方法時服務器拋出了一些異常。