Javascript 储存饼干

Javascript 储存饼干,javascript,.net,asp.net,cookies,Javascript,.net,Asp.net,Cookies,好的,苏,我有3个网站。所有这些都需要存储每个站点都需要能够看到的cookie。 我有一个单一的ASPX,用于存储所有3个站点的此cookie。。 基本上,在站点的每个页面上都有一个javascript调用ASPX并使其存储cookie。如果ASPX位于一个域上,并且im将ASPX作为映像加载,为什么每个站点不写入同一个cookie?基本上让我这样分解 X.com y、 com z、 com 都存在 y、 com/cookiesave.aspx也存在。它编写一个名为bob的coookie,如果它

好的,苏,我有3个网站。所有这些都需要存储每个站点都需要能够看到的cookie。 我有一个单一的ASPX,用于存储所有3个站点的此cookie。。 基本上,在站点的每个页面上都有一个javascript调用ASPX并使其存储cookie。如果ASPX位于一个域上,并且im将ASPX作为映像加载,为什么每个站点不写入同一个cookie?基本上让我这样分解

X.com y、 com z、 com 都存在

y、 com/cookiesave.aspx也存在。它编写一个名为bob的coookie,如果它不存在,则将其设置为Guid

x、 所有页面上的com、y.com和z.com基本上都有一个javascript,从y.com/cookiesave.aspx加载一个图像,该图像返回1x1透明图像。 然而,似乎没有看到这些饼干来自y.com。

它仍然认为这三个站点分别保存和加载cookie。它怎么知道脚本是否只在y.com上呢?

浏览器制造商为防止跨站点脚本攻击而设置了阻止这种行为的保护措施。如果你有一个合法的目标,那么用这种方式来实现它;使用
x.my.com
y.my.com
z.my.com
my.com
设置cookie,而不是为每个cookie设置cookie


另请注意:针对此类行为的保护不仅由浏览器停止,还存在安全网关、防火墙等,它们会查找此行为,因为假定它是一种攻击。除非你在执行攻击,否则按我建议的方式执行。哦,不要执行攻击——如果这是您正在考虑的操作。

Cookies必须具有相同的原始域。对于任何cookie,有两个键值cookie domain和cookie path。cookie域默认设置为加载页面的域。例如
www.foo.com
。如果要在域之间共享cookie,这些域必须类似于:

a.foo.com
b.foo.com
c.foo.com
在这种情况下,cookie域必须设置为
foo.com
(您不能设置
com

cookie路径是服务器上应返回cookie的路径。大多数情况下,您将其设置为
/
,这意味着任何路径都将获得cookie。但是您可以将其设置为
/something
,然后任何类似
/something/here/
的页面都将获得cookie

编辑:

大多数浏览器都会阻止来自非您正在访问的页面的任何第三方的cookie


我的目标更多的是一种分析型目标。。。我捕捉到了IP地址,但IP地址只精确到它后面的防火墙。我想在那台机器上放一个guid,这样我就知道那台机器什么时候会回到站点,但是多个域可能会有分析脚本。。我会考虑不进行攻击:)哈哈,绝对不是目标。欣赏thought@Rico:看看“evercookie”。我相信这会让你大吃一惊>>哇,Evercookie真是太酷了。。。。如果它解决了我的问题,那会更好,但它可能会进一步解决其他问题..天哪,evercookie只是。。。邪恶,我的目标更像是一种分析型的目标。。。我捕捉到了IP地址,但IP地址只精确到它后面的防火墙。我想在那台机器上放一个guid,这样我就知道那台机器什么时候会回到网站上,但是多个域可能会有分析脚本。你会发现,现在很多浏览器只允许浏览器中加载的页面域中的cookie。因此,即使您在所有三个不同的站点上插入来自一个域的图像,您也无法设置cookie。您的回答有道理,我可以获得第三方设置。。我想我可以强迫它。浏览器并不像我想象的那样愚蠢:)活到老学到老。。。