API OWASP 标准

admin 2023年9月25日14:22:01评论32 views字数 1490阅读4分58秒阅读模式


API  管理

API 通过 API 管理发布

API 在开发人员门户中可见

API 只能通过 API 管理网关访问

请求 API 时强制执行速率限制

对 API 进行更改时会自动维护规范

针对标准规范的每次更改验证端点规范

规范包含请求和响应的模式

请求和响应模式和示例经过格式验证,示例通过模式验证

URI

API 使用 HTTPS(或在特殊情况下使用其他带加密的无状态协议)

在组织的官方域下发布的 API

可见域与其他 API 共享(即 API 使用者看到的域?)

端点深度最多为 2 个资源(示例 /projects/123/tasks/345)

已应用样式指南中的其他命名样式

API 有版本控制

版本控制策略最适合所选 API 管理平台和主要 API 使用者?主版本在 URI  中(仅当 API 管理平台不支持基于客户端订阅的版本控制时)

API 使用无状态处理(无会话,OpenID 连接令牌是可以的)

没有特殊处理(异步事件)

HTTP 方法

GET -requests 没有请求正文

POST 用于创建和更新数据?

POST 仅以标准方式使用。

PUT 用于创建或替换整个资源?

DELETE 仅用于删除资源?

HTTP 状态码

404 用于错误的 URL

400 -responses 有特定错误的附加信息(例如缺少必需的属性)

当 API 使用者使用错误的凭证时使用 401 -response

403 使用有效但请求 API 使用者无法访问的端点或尝试使用他们不允许执行的操作

500 - 当存在 API 使用者无法通过更改请求来解决的内部处理问题时响应

500 -responses  具有特定于应用程序的错误代码,但不是关于确切错误(堆栈跟踪或错误文本)的非常清晰的普通消息,这可能会将内部实现暴露给 API 使用者

GET: 200 OK 和 items -array 作为空数组

GET:204 空响应,正文中没有任何内容

POST: 200 OK 更新或提交而不创建新资源

201 -response 结合创建资源的标识符

DELETE: 204 OK 删除资源成功时

本土化

带有时区的 UTC 日期和时间格式(ISO 标准)

与 ISO 标准代码一起使用的语言和国家代码?

应用其他标准代码?

如果使用 ISO 标准中的地理坐标?

有效负载本地化支持或可通过 API 访问的本地化值?

支持错误消息本地化吗?

额外的安全性

所有端点都至少受到客户端特定 API 密钥的保护,即使它们是公开可用的(反农业)?

支持 OpenID 连接和 JWT(基于会话的身份验证)?

防范 CFRS?(允许 API  管理开发者门户作为源,以允许开发者通过门户用户界面试用 API)

输入是否经过验证?

输入由使用的编码框架自动验证?

输出被转义?

使用的编码框架会自动转义输出吗?

是否需要在实施前评估加密数据?(特定国家/地区的隐私和其他法律要求和商业机密要求)

是否已根据评估的需要对传输中的数据和存储中的数据进行加密?

是否需要在实施前评估消息完整性(通常使用签名和加密的 JWT  令牌作为身份验证和确保完整性)?

是否已根据评估的需要实施消息完整性?

UUID 用于标识对象而不是内部 ID?

安全的直接对象引用,即 URL  中没有敏感信息(如银行帐号、社会保险号、人名等)作为资源名称或查询参数?

规范包含标准格式的请求和响应示例,API 文档根据规范、模式和示例自动生成

POST, PUT: 201 为创建新资源而创建

来自客户端的 400 个错误请求,例如缺少必需的查询参数

白名单:POST、PUT 和 DELETE 仅适用于 API 使用者可以操作的资源?

具有最长端点层次结构和多个长值查询参数的 GET 请求不超过 2000 的 URI  长度?(一些老客户端和浏览器可能有这种限制,虽然不是官方限制,新客户端可以很好的处理)


原文始发于微信公众号(菜鸟小新):API OWASP 标准

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月25日14:22:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   API OWASP 标准http://cn-sec.com/archives/2066216.html

发表评论

匿名网友 填写信息