RESTful Web 服务 - 安全性
因为 RESTful Web 服务使用 HTTP URLs 路径,因此以保护网站同样的方式维护 RESTful Web 服务是非常重要的。以下是设计 RESTful Web 服务时要遵循的最佳实践。
- 验证 - 验证服务器上的所有输入。保护服务器免受 SQL 或者 NoSQL 注入攻击。
- 基于会话的认证 - 请求一个 Web 服务方法时使用基于会话的认证对用户进行身份验证。
- URL 不要有敏感数据 - 永远不要在 URL 中使用用户名,密码或者会话标记,这些值应该通过 POST 方法传递给 Web 服务。
- 限制方法执行 - 允许限制使用方法,比如 GET,POST,DELET。GET 方法不应该能够删除数据。
- 验证有缺陷的 XML/JSON - 检查格式良好的输入传递给 Web 服务方法。
- 抛出通用错误消息 - Web 服务方法应该使用 HTTP 错误消息,比如 403 展示禁止访问等。
HTTP 状态码
编号 | HTTP 状态码 & 描述 |
---|---|
1 |
200
OK ,显示成功。 |
2 |
201
CREATED ,当资源使用 POST 或者 PUT 请求建立成功时。使用位置头返回新建资源的链接。 |
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 ,指出执行该方法时服务器抛出了一些异常。 |
上一篇: RESTful Web 服务...
下一篇: RESTful Web 服务...