我正在实现REST api,并且在出现错误的情况下不确定响应内容。例如,我使用jwt令牌进行身份验证。如果客户端提供了错误的令牌,服务器将使用以下正文答复401状态代码
{
"status":"failed",
"details":"JWT token not valid"
}
如果客户端不提供令牌,则服务器将以以下状态答复401状态代码
{
"status":"failed",
"details":"missing JWT token"
}
以此类推。
这些HTTP答案非常有用,在调试时非常有用。问题在于,攻击者现在知道API使用令牌而不是基本身份验证或其他类型的身份验证系统。 因此,我现在考虑只使用状态码和一个空的正文来回答。此HTTP答案不提供信息。攻击者不知道发生了什么,调试时我也遇到了同样的情况。 我的问题是:最佳做法是什么?内容是否丰富?是否需要默默创建安全性?
谢谢
答案 0 :(得分:0)
如果您返回401,则客户端将始终看到支持哪些身份验证方案:
“生成401响应的服务器必须发送WWW-Authenticate标头字段(4.1节),其中包含至少一个适用于目标资源的质询。” -https://greenbytes.de/tech/webdav/rfc7235.html#status.401