过去,我们已经将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中配置吗?)