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 请求成功创建资源时。使用位置标头返回指向新创建资源的链接。

3

204

无内容- 当响应正文为空时。例如,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 - 表明服务器在执行方法时抛出了一些异常。