正如RESTfulWeb服務以HTTP URL的路徑工作,所以這是非常重要的,在相同的方式維護一個RESTful Web服務的網站是安全的。以下是在設計一個RESTful Web服務應遵循的最佳實踐。
驗證 - 驗證伺服器上的所有輸入。防止SQL或NoSQL隱碼攻擊攻擊你的伺服器。
基於對談的認證 - 使用基於對談的認證,每當一個請求到Web服務的方法來驗證使用者的身份。
URL沒有敏感資料 - 千萬不要使用使用者名,密碼或對談令牌的URL,這些值應通過POST方法傳遞給Web服務。
方法執行限制 - 允許限制使用像GET,POST,DELETE等方法。 GET方法不應該用於刪除資料。
驗證格式錯誤 XML/JSON - 檢查以及表單輸入傳遞到Web服務方法。
丟擲通用錯誤資訊 - Web服務方法應使用HTTP錯誤資訊像403,顯示禁止存取等。
S.N. | HTTP 程式碼 & 描述 |
---|---|
1 |
200 正確/正常, 顯示成功。 |
2 |
201 建立,當使用POST或PUT請求成功建立了資源。返回連結使用位置檔頭新建立的資源。 |
3 |
204 無內容, 當響應主體是空的,例如,一個DELETE請求。 |
4 |
304 不修改, 用於減少以防條件GET請求的網路頻寬的使用。響應主體應該是空的。頭應該有日期,位置等。 |
5 |
400 錯誤的請求, 狀態表示無效輸入,例如提供驗證錯誤,資料丟失。 |
6 |
401 未經授權, 指出使用者正在使用無效或錯誤的身份驗證令牌。 |
7 |
403 被禁止, 指出使用者沒有存取方法的使用,例如,刪除許可權沒有管理員許可權。 |
8 |
404 未找到, 狀態表示這個方法不可用。 |
9 |
409 衝突, 執行方法,例如,新增重複條目狀態的衝突的情況。 |
10 |
500 內部伺服器錯誤,狀態該伺服器已經在執行方法丟擲了一些異常。 |