Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于主机域限制iframe Cookie_Javascript_Http_Cookies_Setcookie - Fatal编程技术网

Javascript 基于主机域限制iframe Cookie

Javascript 基于主机域限制iframe Cookie,javascript,http,cookies,setcookie,Javascript,Http,Cookies,Setcookie,我有一个web应用程序,可以加载到不同主机上的iframe中,比如从myiframe.com提供服务。为了管理会话,我使用了一个名为“会话”的cookie,该cookie是在第一次请求iframe的内容时设置的,域为myiframe.com 现在让我们假设主机A.com加载iframe,因此会话cookie设置为domain myiframe.com。如果导航到主机B.com,则使用相同的会话cookie。我想要的是会话彼此独立,您可以在a中有一个会话,在B中有一个不同的会话。也就是说,当从a请

我有一个web应用程序,可以加载到不同主机上的iframe中,比如从myiframe.com提供服务。为了管理会话,我使用了一个名为“会话”的cookie,该cookie是在第一次请求iframe的内容时设置的,域为myiframe.com

现在让我们假设主机A.com加载iframe,因此会话cookie设置为domain myiframe.com。如果导航到主机B.com,则使用相同的会话cookie。我想要的是会话彼此独立,您可以在a中有一个会话,在B中有一个不同的会话。也就是说,当从a请求应用程序时设置的cookie不会在从B请求应用程序时使用

我想我可以根据主机使用不同的cookie名称,然后通过将适当的cookie与主机的信息匹配来验证会话,但我想知道是否可以使用“set cookie”头和cookie的域字段来进行验证

顺便说一句,我无法控制主机或它们如何添加iframe,尽管它们都以完全相同的方式进行添加


编辑:用于获取iframe内容的请求包含足够的信息,可以可靠地识别主机。这不是问题。

您不能为“其他”域设置cookie,因此从myiframe.com加载的内容将无法为a.com或b.com设置cookie


如果你有一个机制来确定你的内容是通过iframe嵌入到哪里的,那么推荐人就不能真正做到这一点。太不可靠了,那么你可以使用不同的会话cookie名称来获取不同的会话“用于”a.com和b.com内部运行的iframed内容。

“也就是说,当从a请求应用程序时设置的cookie在从b请求应用程序时不被使用”——你在这里想象的“来自”实际上并不存在。“我无法控制主机,也无法控制主机如何添加iframe”-那么你或多或少都是运气不佳。推荐人是唯一能让你做出这样决定的人,我想这是多么不可靠。@CBroe我可以毫无问题地确定提出请求的主机。我编辑了这个问题,以防它不像我想的那么清楚,iframe不是由“主机”请求的,而是由访问包含iframe的网站的用户的浏览器请求的。在这方面,我看不出你到底想“识别”什么。出于什么目的。@CBroe是的,您是对的,iframe不是由主机请求的,而是由浏览器请求的。这只是一种简化的方式,而且毫无意义地冗长和详细,因为主机会用添加iframe元素的网页进行响应,该元素会使浏览器请求iframe内容。我只是决定对请求iframeWell的主机进行总结和更改,那么实际问题在哪里呢?如果您知道文档是在哪里构建的,那么请基于该名称使用不同的会话cookie名称…?