【问题标题】:Flask-Session cookie works on other browsers for ip address & domain, but for chrome it only works on ip addressFlask-Session cookie 适用于 IP 地址和域的其他浏览器,但对于 chrome,它仅适用于 IP 地址
【发布时间】:2021-07-30 08:06:59
【问题描述】:

我发现了一个同样问题的问题,除了它有 7 年的历史,而且他们有相反的问题,chrome 适用于他们的域,但不适用于 IP。我需要这个应用程序在域上工作,而不是在 ip 上工作,这很不幸。 如果我有一些这样的基本代码: 烧瓶:

app = Flask(__name__)
from dotenv import load_dotenv
load_dotenv()
SECRET_KEY = os.getenv('FLASK_APP_SECRET_KEY')
SESSION_TYPE = 'filesystem'
app.config.from_object(__name__)
Session(app)
CORS(app)

@app.route('/give', methods = ['GET'])
@cross_origin(supports_credentials=True)
def user_make(id):
    session['Hi'] = 'There'
    return 'ye'

@app.route('/take', methods = ['GET'])
@cross_origin(supports_credentials=True)
def user_load(id):
    return session['Hi']


反应:

let data = new FormData()
return axios
      .get('12.34.56.78' + '/give', data, {
        headers: {
          "Content-Type": "multipart/form-data",
        },
      }).then(
return axios
      .take('12.34.56.78' + '/take', data, {
        headers: {
          "Content-Type": "multipart/form-data",
        },
      }))
      

在 ip='12.34.56.78' 和域 'example.com' 的服务器上: 在 safari 上使用域或 ip 时,输出为

'那里'

两者都有

但是,在 chrome 上, 对于 ip,输出是

'那里'

然而,对于域,输出是

按键错误

编辑: 更多信息: 这是在 AWS ec2 ubuntu 服务器上,该服务器在前端的 80 端口和后端的 5000 端口上运行。我使用 AWS Route 53 将 IP 地址连接到域名......以防万一。要访问前端,可以去ip或域名,而要访问后端,必须去ip:5000

需要更多信息吗?

这可以修复吗? 谢谢!

【问题讨论】:

    标签: python google-chrome flask cookies flask-session


    【解决方案1】:

    我认为问题在于谷歌浏览器如何管理 cookie。这是 'SameSite' 属性。早在 2020 年 7 月 14 日,Google 就开始逐步推出新的浏览器政策,并进行了一些重大更改。如果未指定 SameSite 属性,则默认将 cookie 视为 SameSite=Lax 的一种。另一个弃用并删除了带有 SameSite=None 属性但不包含 Secure 属性的 cookie。这意味着任何请求 SameSite=None 但未标记为安全的 cookie 现在都被拒绝。这意味着前端无法联系到后端,并且站点无法正常工作。要修复它,您只需确保在创建 _SESSION_ID cookie 时它包含 SameSite=None 和 安全属性。

    P.S.1:基于Caleb 的article。后端是 Ruby on Rails,但我认为这不是问题。 P.S.2:在更改任何内容之前,请尝试其他基于 chrome 的浏览器,例如 Vivaldi、Comodo 甚至是新的 Microsoft Edge。

    【讨论】:

      猜你喜欢
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2011-10-03
      • 2016-09-07
      • 1970-01-01
      • 2022-07-11
      相关资源
      最近更新 更多