RESTful - Web 服务安全性

  • 简述

    由于 RESTful Web 服务使用 HTTP URL 路径,因此以与保护网站相同的方式保护 RESTful Web 服务非常重要。
    以下是设计 RESTful Web 服务时要遵守的最佳实践 -
    • Validation− 验证服务器上的所有输入。保护您的服务器免受 SQL 或 NoSQL 注入攻击。
    • Session Based Authentication − 每当向 Web 服务方法发出请求时,使用基于会话的身份验证对用户进行身份验证。
    • No Sensitive Data in the URL − 切勿在 URL 中使用用户名、密码或会话令牌,这些值应通过 POST 方法传递给 Web 服务。
    • Restriction on Method Execution- 允许限制使用方法,如 GET、POST 和 DELETE 方法。GET 方法应该不能删除数据。
    • Validate Malformed XML/JSON − 检查传递给 Web 服务方法的格式正确的输入。
    • Throw generic Error Messages - 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 - 表示服务器在执行该方法时抛出了一些异常。