仅特定URL可访问的Cookie

3
我希望能够使用JavaScript获取和设置Cookie,但希望它们只能被设置它们的页面访问(即Cookie对于页面是私有的,因此其他页面无法干扰或读取它们)。
2个回答

3
这是你需要做的:
假设你正在访问网址为http://www.example.com/pages/myPage.html的页面,并且你想要限制这个特定页面(myPage.html)上的cookie访问,那么在设置/创建cookie时,你需要将路径参数设置当前页面相对路径
var pathToMyPage = window.location.pathname; // this gives pages/myPage.html
document.cookie('name=value;path='+ pathToMyPage); 

现在,如果您尝试在其他页面的cookie中查找此特定键,例如/pages/myPage2.html,您将无法找到它。

嗨,但如果我想将Cookie的使用限制在http://www.example.com上而不是其他域名上该怎么办? - Shift 'n Tab
@Roel,默认情况下,Cookie是针对特定域设置的。因此,如果您为http://www.example.com设置Cookie,则在https://google.com下找不到这些Cookie。 - bhavya_w
我看过一些文章,如果您不提供samesite选项或者使用samesite="lax",则可以将cookie传递给其他站点。尽管我的知识仍然有限。 - Shift 'n Tab
1
@Roel,请查看此链接 - https://dev59.com/XWw15IYBdhLWcg3wMpAY - bhavya_w

1

你不能将它限制在特定的URL上,但你可以将其限制在与你的域名相关的路径上。

如果你只有一个特定文件夹内的单个页面,并相应地设置路径,则cookie仅可被该页面访问。

请参考this post了解更多关于cookie的信息。

设置cookie的javascript代码如下:

document.cookie="username=something ; expires=Thu, 18 Dec 2014 12:00:00 GMT; path=/blog";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接