在 Spring-Boot 中启用 CORS 时是否仍需要 Basic Auth?
Is Basic Auth still needed when CORS enabled in Spring-Boot?
在使用 spring-boot 构建的控制器中,我只为我的服务器和本地主机启用了 CORS,并带有此注释:
@CrossOrigin(origins = {"http://localhost:8080", "https://www.somepage.com"}, maxAge = 3600)
这工作正常。但是现在我不确定是否还需要为 REST API 添加基本身份验证。据我所知,REST API 现在唯一接受的调用是我自己的服务器和本地主机,这就是为什么我认为不需要它的原因。但是我无法弄清楚,这是否是一种不好的做法。
即使启用了 CORS,您是否也建议对 REST API 使用基本身份验证?
CORS 是一种在浏览器中实现的机制,它不会阻止我使用 curl
访问您的 API。因此,如果您需要确保安全,请确保您的 API 安全。
没有.
同源策略是浏览器内置的一项功能,可防止攻击者在攻击者网站上的 JavaScript 运行 读取对从受害者浏览器到目标网站的 HTTP 请求的响应。
这会阻止攻击者使用属于受害者的凭据从目标网站窃取数据。
(在某种程度上。还有其他类型的攻击。)
CORS 是一种放宽此规则的工具,因此当您允许另一个站点访问该数据时(使用用户的凭据或因为它只是 public 数据),它可以。
请注意,我说的是“浏览器内置的功能”。它没有内置到其他工具中。
攻击者仍然可以使用他们的代码、Postman 和 curl 等工具或他们自己的网络浏览器发出 HTTP 请求。
同源策略和 CORS 都不能替代身份验证和授权。
在使用 spring-boot 构建的控制器中,我只为我的服务器和本地主机启用了 CORS,并带有此注释:
@CrossOrigin(origins = {"http://localhost:8080", "https://www.somepage.com"}, maxAge = 3600)
这工作正常。但是现在我不确定是否还需要为 REST API 添加基本身份验证。据我所知,REST API 现在唯一接受的调用是我自己的服务器和本地主机,这就是为什么我认为不需要它的原因。但是我无法弄清楚,这是否是一种不好的做法。
即使启用了 CORS,您是否也建议对 REST API 使用基本身份验证?
CORS 是一种在浏览器中实现的机制,它不会阻止我使用 curl
访问您的 API。因此,如果您需要确保安全,请确保您的 API 安全。
没有.
同源策略是浏览器内置的一项功能,可防止攻击者在攻击者网站上的 JavaScript 运行 读取对从受害者浏览器到目标网站的 HTTP 请求的响应。
这会阻止攻击者使用属于受害者的凭据从目标网站窃取数据。
(在某种程度上。还有其他类型的攻击。)
CORS 是一种放宽此规则的工具,因此当您允许另一个站点访问该数据时(使用用户的凭据或因为它只是 public 数据),它可以。
请注意,我说的是“浏览器内置的功能”。它没有内置到其他工具中。
攻击者仍然可以使用他们的代码、Postman 和 curl 等工具或他们自己的网络浏览器发出 HTTP 请求。
同源策略和 CORS 都不能替代身份验证和授权。