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 代码
Sr.No. | 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 − 表示服务器在执行该方法时抛出了一些异常。 |