java - 基本身份验证请求应该是 POST 还是 GET?

标签 java rest jax-rs basic-authentication restful-authentication

我看到 GETPOST 请求中都完成了基本身份验证。

一方面,我认为浏览器缓存 GET 请求可能是一个问题,但另一方面:POST 较大,但鼓励用于传递敏感信息。

我不是问 GETPOST 请求之间的区别,而是问应该使用哪一个进行基本身份验证。 GET 是否只能与 HTTPS 一起使用?是否应该始终使用 POST

我的问题是应该使用哪一个?哪一种是更好的做法?

最佳答案

Should GET be used only with HTTPS? Should POST be used always?

通过网络发送/请求敏感信息时,无论使用哪种 HTTP 方法,都必须使用 HTTPS。 HTTPS 确保主体和 header 均已加密。

请记住,敏感信息(例如密码和支付卡号)绝不能在 URL 中发送:请求的 URL 可能会被服务器和代理记录;如果浏览器请求该 URL,则该 URL 将进入浏览器历史记录。然后你就会遇到安全漏洞。

Which one should be used for Basic authentication?

Basic身份验证方案不依赖于任何特定的 HTTP 方法。每个HTTP method有自己的语义,因此您可能需要不同的方法来设计您的 API。这些方法中的每一个都可能执行需要身份验证和/或授权的操作。

HTTP 身份验证框架,如 RFC 7235 中所述。 ,定义凭证应在 Authorization 中发送 header ,因此它们可以应用于任何 HTTP(S) 请求。

还需要强调的是,身份验证方案(例如 Basic)旨在应用于保护空间,通常称为领域(有关详细信息,请参阅我的 previous answer )。

关于java - 基本身份验证请求应该是 POST 还是 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55470970/

相关文章:

java - 如何通过分析URI来识别JAX-RS Controller ?

java - 覆盖 Jersey 2.5.1 中的 RolesAllowedDynamicFeature

java - 即使给出了正确的引用,在 TextView 上获取空对象引用

java - 找不到按钮 "Show Selected Element only"Eclipse Java EE

java - 如何将 127.0.0.1 重定向到 localhost (Java)?

json - 如何使用 JSON HAL 处理嵌套资源?

java - 使用 CXF 作为实现限制查询参数 JAX-RS 的值

mongodb - 使用数据库 ID 作为 Restful 服务 ID 会暴露威胁吗?

java - 在 Jersey ResourceFilterFactory 中获取实际参数值

java - H2 的嵌入式数据库在哪里存储数据?