mtr*_*nda 11 asp.net cookies subdomain cross-domain
虽然我意识到这通常与跨站点脚本攻击有关,但我想知道的是,会话如何在属于单个域的多个子域中保持有效(例如:用户只登录一次,并且能够访问两者subdomain1.domain.com和subdomain2.domain.com具有相同的会话).我想我首先需要了解它是如何工作的,但到目前为止我还没有找到任何相关的东西.
但话说回来,也许我没有问正确的问题.
提前致谢 :)
小智 18
Inproc会话无法保持有效,但您可以编写Web应用程序代码以允许跨多个子域的Cookie.您需要将域设置为:
Response.Cookies("CookieName").Domain = ".mydomain.com"
Run Code Online (Sandbox Code Playgroud)
有很多方法可以跨域共享会话数据或cookie数据.最简单的方法是通过共享数据存储在服务器端共享它.但你不会问这个问题是否那么简单.
另一种方法是同样简单.该域one.com
包含一些会话数据name=aleem
,id=123
并且希望将其传递给two.com
.它将遵循以下步骤:
two.com/api/?name=aleem&id=123
two.com
通过查询参数得到的数据,创建一个与数据的cookie.此cookie将存储在two.com
域下.two.com
然后将重定向回到REFERER
在这种情况下恰好是one.com
这是一个简化的方案.域two.com
需要能够信任one.com
,不仅如此,而且需要知道请求是真实的,而不仅仅是由用户制作,因此您需要使用公钥/私钥来缓解这种情况.
您可以为特定域设置 cookie。
在php中,setCookie()方法包含一个参数,可以在其中指定顶级域,因此cookie对所有子域都有效。根据您的标签,我发现您正在使用 asp.net。也许这也存在于asp...
稍微搜索一下 asp 后:
尝试这个:
Response.Cookies("CookieName").Domain = ".mydomain.com"
Run Code Online (Sandbox Code Playgroud)
或阅读此内容
归档时间: |
|
查看次数: |
35873 次 |
最近记录: |