- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 chrome 和 SameSite 的问题。我在 shopify iframe 中提供网页,当使用 flask 登录设置 session 时,chrome 告诉我:
A cookie associated with a cross-site resource atURL was set without the
SameSite
attribute. It been blocked, as Chrome now only deliverscookies with cross-site requests if they are set withSameSite=None
andSecure
.
app.config['SESSION_COOKIE_SAMESITE'] = "None"
最佳答案
只是为了扩展这一点,正如您提到的那样,使用 flask 应用程序配置,您可以设置所有内容,除非设置 SESSION_COOKIE_SAMESITE=None
谷歌浏览器似乎没有将该值设置为“无”,然后默认为“松懈”。
我解决此问题的方法是将 cookie 添加回响应 header 中。首先我必须获取 cookie 值,因为使用 request.cookies.get("my_cookie")
似乎没有从响应中提取 cookie 值,并且始终显示为 None。
其次,使用 response.set_cookie()
仍然没有设置 samesite=None
值(value)。我不知道为什么,因为我使用的是最新版本的 flask
和 Werkzeug
这显然应该解决问题,但事实并非如此。经过大量测试,我发现使用 response.headers.add()
可以添加 Set-Cookie:
header ,但我需要一种方法来提取 cookie 值以确保我可以获得相同的 session 。在浏览了 flask 文档和其他在线论坛之后。我发现我实际上可以调用SecureCookieSessionInterface
上课并从那里获取签名的 session 。
from flask import session
from flask.sessions import SecureCookieSessionInterface
# where `app` is your Flask Application name.
session_cookie = SecureCookieSessionInterface().get_signing_serializer(app)
最后,我必须确保在建立请求后将相同的 session 添加到响应中,而不是在每条路由上调用它,这在完整的应用程序中似乎不可行。这是通过使用
after_request 来完成的。请求后自动运行的装饰器。
@app.after_request
def cookies(response):
same_cookie = session_cookie.dumps(dict(session))
response.headers.add("Set-Cookie", f"my_cookie={same_cookie}; Secure; HttpOnly; SameSite=None; Path=/;")
return response
我在 Chrome 中注意到的是,它基本上设置了一个具有相同签名值的重复 cookie。因为两者都与具有
samesite=None
的相同。在响应 header 中,其他被 Chrome 阻止的似乎被忽略了。因此,使用 flask 应用程序验证 session 并允许访问。
关于Python session SAMESITE=None 未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62992831/
谁能告诉我 和有什么区别? SameSite="松懈"和 SameSite="严格"通过一个很好的例子,因为我在这两者之间有点困惑? 最佳答案 Lax 允许在某些跨站点请求上发送 cookie,而 S
我在 Ionic 框架 iframe 中添加到购物车时遇到问题,按钮卡在 Adding...无需将商品添加到购物车。 我注意到“网络”选项卡中有一些错误/警告。它说 SameSite cookie 被
由于 Chrome 将在 2 月 4 日从 80 版本开始强制使用 SameSite=None 和 Secure 标志,我尝试使用以下代码行: HttpCookie myCookie = new Ht
我在 IIS 中尝试过相同站点的 cookie。但没有运气。我如何在 IIS 中使用它?顺便说一句,我使用的是 Windows Server 2012 R2。 配置: 最佳答案 这通常在应用程序的
我在我的一个环境中使用 Anaconda 安装了 Airflow 1.10.12。 但是,当我尝试按照快速入门指南(在 https://airflow.apache.org/docs/stable/s
我访问了此网站:普通和隐身Chrome窗口上的https://samesite-sandbox.glitch.me/。在Mac Chrome和Android Chrome上,这种情况发生的时间均为10
我在设置 Cookie 中的 SameSite 属性时遇到问题。我想设置这个属性,但是 javax.servlet.http.Cookie 和 java.net.HttpCookie 都没有提供处理它
我查看了控制台并注意到了这些警告 A cookie associated with a cross-site resource at http://google.com/ was set withou
我最近阅读了关于“同一站点”属性的“RFC 6265”,我在 2016 年 4 月看了一些文章,其中谈到了 Chrome 51 和 Opera 39 已经实现了“同一站点”属性 ... 我想知道当前的
我正在尝试解决从 Chrome 浏览器收到的警告: A cookie associated with a cross-site resource at http://www.facebook.com/
Chrome 80 将引入一个新属性,即 SameSite。 严格 - 只为“同一站点”请求附加 cookie。 松散 - 发送“同站点”请求的 cookie,以及使用安全 HTTP 方法的“跨站点”
最近,Chrome 更改了是否将 cookie 附加到跨域请求的策略。现在,cookie 不会附加到跨域请求,除非: SameSite cookie 属性是 Lax或 None并且请求是由用户操作发起
为了兼容 Chrome 80- 版本,我们已经为 OWIN 应用程序实现了相同站点 Cookies 引用 https://docs.microsoft.com/en-us/aspnet/samesit
我遇到了 chrome 和 SameSite 的问题。我在 shopify iframe 中提供网页,当使用 flask 登录设置 session 时,chrome 告诉我: A cookie ass
我的网站上发生了以下代码,并且我尽力做到了这一点,所以我有几个问题,请阅读。category-search-Forum:1 A cookie associated with a cross-site
自上次更新以来,我遇到了与 SameSite 属性相关的 cookie 错误。 Cookie 来自第三方开发人员(Fontawesome、jQuery、Google Analytics、Google
自上次更新以来,我遇到了与 SameSite 属性相关的 cookie 错误。 Cookie 来自第三方开发人员(Fontawesome、jQuery、Google Analytics、Google
您知道任何允许为 cookie 设置自定义标志的 Java cookie 实现,例如 SameSite=strict?看来javax.servlet.http.Cookie有一组严格限制的可以添加的标
客户将链接到我们网站上的一个网页:customer.site/links.html 一个人点击该链接并被发送到 our.site/webapp/handlerequest.aspx?someparam
我有一个使用这些参数运行的完全可用的 setcookie() php 函数... password), time() + 86400, '/', ); ?> 上面的代码每次都设置一个 cook
我是一名优秀的程序员,十分优秀!