我使用 React(端口 3000)和 Spring(端口 8080)创建了一个小型登录应用程序,它们都在同一台机器(本地主机)上运行,但端口不同。
由于 CORS 策略,浏览器拒绝了从前端到后端的 http 请求,因此我在 SpringBoot 后端应用程序中启用了 Cors 配置。
Cors 配置
s = df.LotSizeDimensions.str.strip('`"M ').str.upper()
df1 = s.str.split('X', expand=True).astype(float)
#general data
#df1 = s.str.split('X', expand=True).apply(lambda x: pd.to_numeric(x, errors='coerce'))
df['LotSize'] = np.where(s.str.count('X').eq(1), df1[0] * df1[1], 0)
print (df)
LotSizeDimensions LotSize
0 40.00X150.00 6000.0
1 57.00X130.00 7410.0
2 27.00X117.00 3159.0
3 37.00X108.00 3996.0
4 63.00X135.00 8505.0
5 65.00X134.00 8710.0
6 57.00X116.00 6612.0
7 33x124x67x31x20x118 0.0
8 55.00X160.00 8800.0
9 63.00X126.00 7938.0
10 36.00X105.50 3798.0
现在,我可以为“Access-Control-Allow-Methods”中提到的所有方法对后端进行 http 调用。
此外,一旦用户成功登录,我就会生成一个 cookie 并作为“Set-Cookie”标头的一部分发送到响应中,以便下次我将 cookie 作为 Cookie 标头的一部分接收。生成的cookie有以下配置,
a) sslSecure = false(因为我的网站将是一个 http 网站)
b) HttpOnly = true(出于安全原因/阻止 XSS 攻击)
c) sameSite = None(因为 CrossOrigin)
d) maxAge = 2 小时(浏览器中的 cookie 生存期)
看起来从 Chrome 85 版本开始,在 CORS 请求的情况下,只有当 sslSecure = true 和 sameSite = None 时,Cookie 才会发送到后端。
如何克服这个问题?由于我的网站不会包含任何敏感信息,我希望它是 http(将始终具有 sslSecure = false)而不是 https。