Javascript 如何使用SameSite None和Secure正确设置跨域Cookie?
我继承了一个网站来维护。它使用两个不同的第三方程序,并使用iFrame设置cookie在这两个程序之间传输信息。这些信息并不特别敏感 使用所有内容的通用版本,比如:Javascript 如何使用SameSite None和Secure正确设置跨域Cookie?,javascript,jsp,cookies,websecurity,Javascript,Jsp,Cookies,Websecurity,我继承了一个网站来维护。它使用两个不同的第三方程序,并使用iFrame设置cookie在这两个程序之间传输信息。这些信息并不特别敏感 使用所有内容的通用版本,比如: *工具1:www.xyzWarehouse.com *工具2:www.xyzCorp.com *中间页面:tools.xyzCorp.com xyzWarehouse为tools.xyzCorp.com/setTransferCookies.jsp打开一个小iFrame setTransferCookies.jsp为域xyzCorp
*工具1:www.xyzWarehouse.com
*工具2:www.xyzCorp.com
*中间页面:tools.xyzCorp.com
*www.xyzWarehouse.com
*corp.xyzWarehouse.com
*tools.xyzWarehouse.com 但这必须通过繁文缛节进行,并涉及到对tool1和tool2管理员的更改。我们需要一个中间的解决方案,让我们一直坚持到那时 这就是我尝试过的: 原始代码1:使用.jsp
cookieString = cookieString.substring(0,cookieString.length()-1) + "}";
Cookie cookie = new Cookie ("xyzTracking",cookieString);
cookie.setMaxAge(365 * 24 * 60 * 60);
cookie.setDomain("xyzWarehouse.com");
response.addCookie(cookie);
cookieString = cookieString.substring(0,cookieString.length()-1) + "}";
response.setHeader("Set-Cookie", "xyzTracking="+cookieString+"; SameSite=none; Secure; Domain=xyzWarehouse.com");
我似乎找不到涉及samesite的Cookies版本,所以可能无法使用此版本。如果我错了,请告诉我。当然,这个错误告诉我需要使用SameSite:None
尝试2:使用JavaScript
for (i=0;i<attPairs.length;i++) {
var pair = attPairs[i].split("=");
params[pair[0]] = pair[1];
}
jQuery.cookies.set( 'xyzTracking', params, {expiresAt: date, domain:'xyzWarehouse.com', sameSite: 'None', secure: 'true'});
for (i=0;i<attPairs.length;i++) {
var pair = attPairs[i].split("=");
params[pair[0]] = pair[1];
}
document.cookie = "xyzTracking=" + encodeURIComponent(params) + "; domain=xyzWarehouse.com; SameSite=None; Secure";
Chrome会让它在不报告任何错误的情况下运行,但在另一边,试图检索cookies时,www.xyzWarehouse.com告诉我没有设置cookies
我做错了什么?我如何修复它?我在.jsp方面没有任何经验,我在JavaScript方面有很多经验,但老实说,如果可能的话,我会尽量避免使用cookies,所以我几乎不需要设置cookies。我所设置的那些从未跨域