背景:
我正在为REST Web服务设计身份验证方案。这并不是“真正”需要安全的(它更多是一个个人项目),但我想使其与练习/学习经验一样安全。我不想使用SSL,因为我不想麻烦,而在大多数情况下,它不需要设置它。
要解决这个问题:
S3和OAuth都依赖于对请求URL以及一些选定的标头进行签名。他们都没有在POST或PUT请求的请求主体上签名。这难道不容易受到中间人攻击,这种中间人攻击会保留url和标头,并用攻击者想要的任何数据替换请求正文?
似乎我可以通过在已签名的字符串中包含请求主体的哈希值来防范这种情况。这样安全吗?
先前的答案仅在数据传输的上下文中提到了SSL,实际上并未涵盖身份验证。
您真的在问有关安全认证REST API客户端的问题。除非您使用TLS客户端身份验证,否则单独使用SSL并不是REST API可行的身份验证机制。没有客户端身份验证的SSL仅对服务器进行身份验证,这与大多数REST API无关,因为您确实要对客户端进行身份验证。
如果您不使用TLS客户端身份验证,则需要使用基于摘要的身份验证方案(例如Amazon Web Service的自定义方案)或OAuth 1.0a甚至HTTP Basic身份验证(但仅通过SSL)。
这些方案验证请求是由预期的人发送的。TLS(SSL)(无客户端身份验证)可确保通过网络发送的数据保持不受干扰。它们是分开的,但又是互补的。
使用oauth 2.0和OpenAPI 3.0格式化Firebase安全方案的正确方法是什么? https://cloud . Google . com/end points/docs/open API/authenticating-users-firebase上的当前文档适用于OpenAPI 2.0,但不适用于OpenAPI 3.0。 我在https://swagger.io/docs/spec
我正在开发REST webService,我的一些客户机将使用我的webservices,所以为了识别真正的客户机,我决定给每个真正的客户机一个唯一的应用程序令牌。客户机将对这个令牌进行编码,他们将把这个令牌放在请求头中,我已经在我的REST webservices中配置了一个REST过滤器来验证令牌。我不想使用https。我的问题是,任何人都可以从我的客户端站点获取该令牌,并可以使用我的REST
我正在尝试让JDBC身份验证与我的小辅助项目一起工作,从表面上看,它应该可以工作,但它没有。所有的配置都遵循贝娄。 如果我切换到具有相同用户名/密码的inMemory身份验证,它就会非常工作。 这是我记录输出时得到的结果:
我在REST api中使用JWT承载身份验证方案。为了在成功身份验证后将jwt令牌返回给客户端,目前我在正文中使用访问令牌响应,如中所述https://www.rfc-editor.org/rfc/rfc6750#page-10 但是也需要在其他HTTP请求中返回令牌,例如已经存在正文的注册。因此,正在考虑为其使用“身份验证信息”标头。但是承载方案没有在任何地方指定“身份验证信息”标头。我应该使用
我用Spring Security做了一个概念验证,以便使用PRE_AUTH_FILTER过滤器执行预认证。它工作正常,但我想知道如果这个过滤器不起作用,我是否可以重定向到登录页面,因为我得到HTTP 403。< br >我的意思是,如果初始请求的头中不包含SM_USER字段,我如何重定向到登录页面?我需要考虑这两种情况(当它包含字段- SM_USER -和不包含时),但我无法让它工作。有什么想法