python 如果未提供Origin请求报头,则Flask-CORS返回随机的RISK-Control-Allow-Origin

rvpgvaaj  于 2023-11-15  发布在  Python
关注(0)|答案(1)|浏览(123)

我想在我的Flask应用程序中启用CORS,并使用一组预定义的允许起源,如here所示:

from flask import Flask
from flask_cors import CORS

app = Flask(__name__)
CORS(app, origins=['http://localhost:3000', 'https://app.my_domain.com'])

字符串
问题是,如果我没有在对服务器的请求中指定Origin头,则Access-Control-Allow-Origin响应头将返回任意值。
例如,如果我的web应用程序在https://app.my_domain.com上运行,向后端发送一个GET请求,而没有指定Origin请求头,后端将返回以下响应头:
Access-Control-Allow-Origin: http://localhost:3000
我觉得这似乎是不正确的,这个机制打算如何使用?

zkure5ic

zkure5ic1#

Flask-Cors似乎有一个名为always_send的未记录选项,默认为True(参见GitHub代码和相关的issue)。该选项的作用是即使“Origin”头不存在,它也会返回origins。
要解决这个问题,您只需将选项设置为False

CORS(app, origins=['http://localhost:3000', 'https://app.my_domain.com'], always_send=False)

字符串

相关问题