我最近在属性"Same Site"上阅读了"RFC 6265",我看了一些在2016年4月讨论过的文章,为Chrome 51和Opera 39实现了"同站点"属性...
我想知道当前的PHP是否支持使用此属性创建cookie?
参考:
我正在网上冲浪,发现文章使用相同网站的cookie属性预防CSRF.
在链接维护上我们需要添加Set-Cookie标头.
Set-Cookie:key = value; 仅Http; SameSite =严格
现在我的问题是,我想在我的ASP.NET站点中设置所有Cookie和身份验证Cookie.我尝试使用IIS中的标头来设置它,但有人说这是错误的实现方式.
我也在下面尝试过.
HttpCookie newAuthenticationCookie = new HttpCookie(FormsAuthentication.FormsCookieName
, FormsAuthentication.Encrypt(newAuthenticationTicket))
{
HttpOnly = true
};
newAuthenticationCookie.Values.Add("SameSite", "strict");
Run Code Online (Sandbox Code Playgroud)
但它似乎没有帮助我.
请建议我更好的方法来做到这一点.
谢谢.
如何解决SameSite属性?
:1 设置了与http://doubleclick.net/上的跨站点资源关联的cookie,但未设置该SameSite属性。如果将来的Chrome浏览器版本将cookie设置为SameSite=None和,则仅会提供带有跨站点请求的cookie Secure。您可以在“应用程序”>“存储”>“ Cookies”下的开发人员工具中查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。
google.com,linkedin,facebook.com,twitter.com相同。等等
无法添加“ Samesite”属性。解决这个问题的最佳方法是什么?
我在网站的某些页面上使用Google Analytics.我的整个网站都使用SSL.是否可以保护Goole Analytics的Cookie __umt*.
至少我想在它们上启用安全标志.充其量我也想在它们上设置HTTP唯一标志,但我不认为后者是可能的(因为谷歌使用JS来使用我认为的cookie).
是否有可能做到这一点?如果是这样,如何设置它?
Chrome 给了我以下警告:
与http://quilljs.com/上的跨站点资源关联的 cookie 设置为没有该
SameSite属性。未来版本的 Chrome 将仅在跨站点请求中使用SameSite=None和设置 cookie 时才传送 cookieSecure。
请注意,quilljs.com 是第 3 方域。
我看过这些 问题,这两个问题的答案是相似的,有些人是这样说的:
与您的代码无关。这是他们的网络服务器必须支持的东西。
而其他人提供了这样的答案:
response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
Run Code Online (Sandbox Code Playgroud)
我不确定这是我需要在我的网站上修复的问题,还是应该在 3rd 方库中修复的问题?
我有一个 socket.io 应用程序,最近我收到了这个警告:
与URL上的跨站点资源关联的 cookie设置为没有该
SameSite属性。未来版本的 Chrome 将仅在跨站点请求中使用SameSite=None和设置 cookie 时才传送 cookieSecure。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592和 https://www.chromestatus.com/feature/5633521622188032 上查看更多详细信息 。`
显然,Chrome 将来会更新它: SameSite 警告 Chrome 77
我已经尝试过这个,但没有明显的效果:io = io.listen(server, { cookie: false });
我认为 cookie 没有任何作用,那么如何禁用 io 设置呢?
这段代码 this.afAuth.auth.signInWithPopup(new auth.GoogleAuthProvider()) 在Chrome上生成此警告:
与http://google.com/上的资源相关联的Cookie 设置为,SameSite=None但没有Secure。如果将来的Chrome浏览器版本将cookie设置为SameSite=None和,则仅会提供带有跨站点请求的cookie Secure。
最近,Chrome 更改了是否将 cookie 附加到跨域请求的策略。现在,cookie 不会附加到跨域请求,除非:
SameSitecookie的属性为Lax或None并且该请求是由用户发起的动作,或SameSitecookie的属性None和Securecookie的属性true,这意味着跨域请求必须使用https方案。(上面没有错,只是稍微简化了。这里有一篇更彻底的文章。)
在我的开发环境中,我使用一个工具来编译我的开发语言并将更改热加载到我的浏览器选项卡中。这个工具在自己的端口上提供前端代码,后端由一个单独的进程在一个单独的端口上提供服务,所以我们正在处理从浏览器到后端的跨域请求。当然,前端和后端都由localhostscheme 提供服务http。前端应用程序发出的许多请求不是由用户操作发起的,但仍需要 cookie 以进行身份验证。
因此,任何需要 cookie 的东西都无法在我的开发环境中运行。(是的,花了很长时间才弄清楚那个……)
我的问题是:如何SameSite以一种简单的方式绕过、解决或禁用我的开发环境的这些cookie 安全限制,而不会在我浏览其他站点时降低我的安全性?
例如,如果有一种方法可以添加localhost到我的浏览器中的来源白名单,SameSite=None即使没有Secure=true属性也允许cookie ,那就太好了。稍微不那么好,但仍然可以接受,这将是一种包装或代理我的http://localhost:<port>服务的简单方法,以便可以通过该https方案访问它们。或者也许还有另一种使用一些晦涩的 cookie 魔法的方法。
我在我的应用程序的登录页面中添加了一个 google reCaptcha 脚本 v2。它工作正常,但每次初始化时我都会收到以下控制台警告:
与http://google.com/上的跨站点资源关联的 cookie 设置为没有该
SameSite属性。未来版本的 Chrome 将仅在跨站点请求中使用SameSite=None和设置 cookie 时才传送 cookieSecure。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592和 https://www.chromestatus.com/feature/5633521622188032查看更多详细信息
似乎这个 reCapthca iframe 正在保存 cookie,但这样做是错误的。有人面临同样的问题吗?有什么方法可以影响这种行为并摆脱这些控制台警告吗?
如果我重复这个问题,我深表歉意,但我已经花了 6 多天的时间,我正在失去理智。即使我已经仔细尝试并重试将这些添加到我的 php 索引中和标签之前,我似乎无法让该警告消失。我试过在SameSite上 发帖警告 Chrome 77 使用
response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
Run Code Online (Sandbox Code Playgroud)
以及此处的帖子 如何解决 要使用的“SameSite”属性
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
Run Code Online (Sandbox Code Playgroud)
以及这里的示例 https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md
即使其他一切都没有改变,我仍然收到警告。我是否遗漏了什么或做错了什么?抱歉,我想这应该没什么大不了的,但我对这些弹出的警告消息和错误非常感兴趣,我希望它们能消失!提前谢谢。
-update- 抱歉,有问题的控制台中弹出的警告是这样的
A cookie associated with a cross-site resource at http://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
Run Code Online (Sandbox Code Playgroud) 我有这个聊天应用程序已经运行了一段时间,但突然间它在客户端给了我这个问题:
Because a cookie's SameSite attribute was not set or is invalid, it defaults to SameSite=Lax,
which prevents the cookie from being set in a cross-site context. This behavior protects
user data from accidentally leaking to third parties and cross-site request forgery.
Resolve this issue by updating the attributes of the cookie:
Specify SameSite=None and Secure if the cookie is intended to be set in cross-site contexts.
Note that only cookies sent over HTTPS may use the Secure attribute.
Run Code Online (Sandbox Code Playgroud)
我在我的 …