加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

共享ASP.NET_SessionId和.ASPXAUTH cookie安全风险

发布时间:2020-12-16 09:53:38 所属栏目:asp.Net 来源:网络整理
导读:我们正在为一家大公司开发SAAS解决方案,医生可以在其中查看患者并进行突变,订购产品,提供许可证. 该项目适用于一家伞式公司下的4家独立公司.我们为每家公司开发了一个门户网站所有门户使用相同的代码但具有严格的分离数据库,因为数据库包含所有患者信息. 我
我们正在为一家大公司开发SAAS解决方案,医生可以在其中查看患者并进行突变,订购产品,提供许可证.
该项目适用于一家伞式公司下的4家独立公司.我们为每家公司开发了一个门户网站所有门户使用相同的代码但具有严格的分离数据库,因为数据库包含所有患者信息.
我们使用Sitecore作为CMS.

客户端决定在生产环境中使用虚拟文件夹而不是子域.我们的登台环境网址例如:acc-portal1.umbrella.com.对于生产环境,他们想要一个URL,例如:acc.umbrella.com/portal1.所有门户和请求都使用一个SSL证书.

我们使用Membership Provider(表单身份验证)来验证用户.由于使用了分离的数据库,用户无法使用例如portal1和portal3中的同一帐户登录.
因为我们正在使用formsauthentication,所以正在使用“.ASPXAUTH”cookie.当然也使用“ASP.NET_SessionId”cookie.

由于客户端希望使用虚拟文件夹而不是子域,因此cookie将通过所有门户共享.可以在web.config中的节点上设置“路径”,但此路径由Sitecore动态读取并在管道中解析.在web.config中加载后,我没有找到覆盖此路径的方法.另外,我没有找到改变ASP.NET_SessionId cookie路径的方法.

我的问题是:在多个门户网站上共享这些cookie是否存在(安全)风险(请记住,它们应该完全分开)?此设置可能导致其他任何问题吗?

希望有人可以帮忙!

解决方法

是的,存在巨大的安全风险.你所做的就是多租户申请.您必须采取特殊步骤以确保无法共享Cookie和其他敏感数据.

我的建议是将租户名称(portal1)存储在表单身份验证cookie的自定义数据部分中.您在发出表单cookie时设置自定义数据.

然后,有一个自定义模块或只是Application_AuthorizeRequest事件的处理程序,其中已经基于cookie建立了标识.

在处理程序中,您从cookie中解密表单身份验证票证,检索用户数据并与实际URL进行比较.如果有匹配 – 没有任何反应.如果没有匹配,则表示用户在一个门户中进行了身份验证,但尝试访问另一个门户.您可以轻轻地清除响应并呈现一条消息“好吧,此门户网站不适合您”或只是将用户注销.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读