安全性:ASp.NET身份HTTPOnly Cookie和SSL

时间:2016-11-25 19:45:10

标签: asp.net asp.net-identity httpcookie

这是一个普遍的问题,因为我习惯于将User对象存储在会话中,而我正在学习新的身份框架。

我看到很多关于发送"声明"作为饼干的一部分。因此,您不必重新查找用户信息。这意味着名称,电子邮件甚至权限等内容都是保存的Cookie中声明区域的一部分。

我对此研究的所有内容都表示,对于被黑客攻击而言,httpOnly通过SSL是非常安全的。我犹豫是否发送除了用户标识之外的任何内容来识别用户,然后查找数据库中的其余部分,以确保至少是否被用户入侵,权限不被黑客入侵。我是否过于谨慎?

我也看到人们将Cookie设置为在7天或1天后过期......就此而言,您要在声明区域中发送权限/角色。如果他们在服务器上更改会发生什么。基本上,似乎用户需要登录并注销才能获得新的权限。想知道软件UI标准的标准期望是什么?

提前感谢您的想法:)

安吉拉

1 个答案:

答案 0 :(得分:0)

原谅我的无知,但我没有遇到一个软件,其中声明将以cookie发送。通常,cookie的问题是XSS(跨站点脚本)攻击的可能性,因为编写浏览器总是发送它们。

最近人们倾向于使用联邦身份验证机制,其中身份提供者(登录页面)和服务提供者(应用程序代码)不一定是相同的应用程序,并且不总是直接连接。这意味着您可以在数据库中查找的用户数据仅存在于IdP中,SP必须处理IdP提供的任何内容。

这就是为什么每一点信息都是在“声明”中发送的。这意味着IdP声称用户名是john.smith,但SP可能没有任何方法可以检查这个。

为了使其工作,IdP和SP应该建立某种形式的信任,通常采用预共享签名密钥的形式,允许IdP签署令牌(例如SAML信封或JWT),SP验证签名是否能够检查令牌是否未被篡改。

通常,此令牌从不用作cookie;相反,它通常使用Authorization方案添加到Bearer标头中。

另外,作为旁注 - 当您说您熟悉使用会话时,您必须了解会话跟踪器也是一个cookie(在ASP.NET中)。服务器有关于存储在应用程序池的内存缓存中的用户的信息,并且浏览器继续发送cookie,说“我在这里”。因此,安全性方面,简单地使用cookie或使用cookie +会话之间存在可比较的水平。当然有人可能会争辩说cookie可能会泄漏信息,但是应用程序总是可以对数据进行标记化或加密整个cookie,从而否定了这一论点。