asp.net – 用户角色 – 为什么不存储在会话中?

前端之家收集整理的这篇文章主要介绍了asp.net – 用户角色 – 为什么不存储在会话中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将一个ASP.NET应用程序移植到MVC,并且需要存储与授权用户有关的两个项目:角色列表和可见项ID的列表,以确定用户可以看到或看不到的内容.

过去,我们已经将WSE与Web服务结合使用,这使得令人难以置信的复杂和不可能正确调试.现在我们正在挖掘我正在寻找的Web服务,以便大大简化解决方案,只需将这些内容存储在会话中.一位同事建议使用角色和会员提供商,但是考虑到这一点,我发现了一些问题:

a)WSE遇到类似但不同的问题,因为它必须以非常有限的方式使用,即使编写测试也是棘手的;

b)RolesProvider的唯一缓存选项是基于我们基于安全理由拒绝的cookies;

c)它不引起并发症和额外的不必要的行李的结束;

所有我们想要做的,简而言之,在用户的会话中存储两个字符串变量,或者以安全的方式存储相同的东西,并在需要时引用它们.似乎是十分钟的工作,到目前为止已经进行了几天的调查,并且复合了我们现在发现的会话ID显然是伪造的问题,

http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/

我认为没有简单的方法来做这个非常简单的工作,但我发现不可能相信.

任何人都可以

a)提供有关如何使ASP.NET MVC会话安全的简单信息,因为我一直相信他们?

b)建议另一种简单的方法来存储这两个字符串变量,用于登录用户角色等,而不必像上述那样替换另一个复杂的噩梦?

谢谢.

解决方法

用户角色信息存储在服务器端会话中是安全的,提供会话不能被劫持.更广泛地说,如果被认证的会话被劫持,用户角色信息的存储并不重要.

我建议不要太过信仰你链接文章,但是从你的链接链接的2002年的老式报告是有意义的.这是我的搭档:

>不接受内嵌在网址中的会话ID.>专注于消除跨站脚本的危险,即扫描所有用户提供的数据并解析可执行的java脚本.>发布完整网域的Cookie(例如myapp.mydomain.com)>在高级DNS操作符(例如,一个只允许从预设的远程IP地址进行DNS更改.>不要发出持久的会话cookie.>如果有人到达具有已经与认证会话相关联的会话ID的登录页面,则重新发布会话cookie.>更好的是,在成功认证时总是发出新的会话cookie,并放弃先前的会话. (可以在IIS中配置吗?)

猜你在找的asp.Net相关文章