Asp.net身份安全标记是秘密还是可以公开?

时间:2015-03-03 04:40:53

标签: security asp.net-identity

将ASP.Net Identity创建的安全标记以某种方式发送给电子邮件中的最终用户安全漏洞?例如。一个黑客可以从中收集任何有意义的攻击我的应用程序吗?


详情

我已经设置了一个应用程序,可以根据请求向最终用户发送密码重置电子邮件。除了重置密码的标准链接之外,我还发送了另一个链接,告诉用户如果请求重置密码,请单击该链接。单击此其他链接时,我会在数据库中记录有关事件的详细信息,为了防止双击,我希望使用安全戳作为检查。保存此信息后,我立即重置相关用户的安全标记。

2 个答案:

答案 0 :(得分:0)

这取决于您如何实施安全标记。

默认标识只为标记生成GUID。在这种情况下,它与暴露用户ID的安全性相当。作为一个相关的问题,你想确保没有人可以在外部操纵印章。

如果您的印章被计算并且它使用了用户身份的一部分(例如电子邮件,角色,姓名),那么您需要确保它已经散列。

答案 1 :(得分:0)

这是个秘密,除非您更改了安全印章的发行方式。

用户的UserId和Security Stamp被加密到Application Cookie中。您暴露在此Cookie中的任何数据都将公开信息,这些信息可能有助于攻击者破解您在服务器上使用的密钥。在我们的应用程序中,我们从不公开用户ID,这是最简单的方法,但是我们绝对不公开安全标记。

也就是说,如果攻击者没有确定您的密钥,那么他们将很难提供伪造的安全印章-除非您不仅公开它而且还要从所公开的值中读取。这样,攻击您的Web应用程序将非常容易。