当请求 API 的自定义标头错误时,将 http 状态代码设置为 417

Posted

技术标签:

【中文标题】当请求 API 的自定义标头错误时,将 http 状态代码设置为 417【英文标题】:Set http status code to 417 when request API with wrong custom header 【发布时间】:2021-04-18 07:36:04 【问题描述】:

我有一个支持多租户的 API(如果重要的话,基于 dotnet core 5)。所有请求都必须有一个自定义标头(如 X),指示所选租户。 因此,基于这种情况,我有两个主要问题。

    通过标头接受租户是真的吗? (任何安全考虑或其他建议都是合适的) 客户端请求不存在或无效的租户时返回 HTTP 状态码 417 是否正确?

【问题讨论】:

【参考方案1】:

    是的,可以通过 header 接受租户。就安全性而言,它取决于您的安全机制来限制对 API 的访问。

    与RFC 7231 一样,状态码417 与Expect header 有更多关系。如果租户不存在,401 - Unauthorized 更合适,403 - Forbidden 如果它是有效租户但没有执行操作的权限。

【讨论】:

以上是关于当请求 API 的自定义标头错误时,将 http 状态代码设置为 417的主要内容,如果未能解决你的问题,请参考以下文章

Web Api 跨域基础认证

自定义 Authorization HTTP 标头

如何在 Swagger UI 中发送带有请求的自定义标头?

访问 API 中的自定义标头

java HTTP请求中的自定义标头与排球

发送 PHP 标头时不显示通过 Htaccess 的自定义 405 错误消息