【问题标题】:Is Basic Auth still needed when CORS enabled in Spring-Boot?在 Spring-Boot 中启用 CORS 时是否仍需要基本身份验证?
【发布时间】:2021-07-14 16:24:08
【问题描述】:

在使用 spring-boot 构建的控制器中,我只为我的服务器和本地主机启用了 CORS,并带有此注释:

@CrossOrigin(origins = {"http://localhost:8080", "https://www.somepage.com"}, maxAge = 3600)

这工作正常。但现在我不确定是否还需要为 REST API 添加基本身份验证。据我了解,REST API 现在接受的唯一调用是我自己的服务器和本地主机,这就是为什么,我认为不需要它。但我无法弄清楚这是否是一种不好的做法。

即使启用了 CORS,您是否也建议对 REST API 使用基本身份验证?

【问题讨论】:

    标签: spring-boot cors basic-authentication


    【解决方案1】:


    同源策略是浏览器内置的一项功能,可防止攻击者在攻击者网站上运行的 JavaScript 读取受害者浏览器对目标网站的 HTTP 请求的响应。

    这可以阻止攻击者使用属于受害者的凭据从目标网站窃取数据。

    (在某种程度上。还有其他类型的攻击。)

    CORS 是一种放松此规则的工具,因此当您允许其他站点访问该数据时(使用用户的凭据或因为它只是公共数据),它可以。 p>


    请注意,我说的是“浏览器内置的功能”。它没有内置在其他工具中。

    攻击者仍然可以使用他们的代码、Postman 和 curl 等工具或他们自己的网络浏览器发出 HTTP 请求。

    同源策略和 CORS 都不能替代身份验证和授权。

    【讨论】:

      【解决方案2】:

      CORS 是一种在浏览器中实现的机制,它不会阻止我使用 curl 访问您的 API。因此,如果您需要确保 API 的安全,请保护它。

      【讨论】:

        猜你喜欢
        • 2019-04-25
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 2021-10-10
        • 2018-04-13
        • 2017-11-02
        • 2014-09-22
        • 1970-01-01
        相关资源
        最近更新 更多