我们有一个MVC应用程序,在让用户开始使用系统之前我们需要进行一些安全检查。用例如下;
我们有Company表存储有效的IP地址(也是范围)。公司有相关用户。如果用户从未识别的电子邮件地址登录,我们需要确保该用户仍在为相应的公司工作。因此,我们使用公司电子邮件地址来验证用户。
我有两种实现方法;
1)生成令牌,并将带有令牌的链接作为查询字符串发送给用户,当用户点击此链接时,我将验证用户一段时间(1天)
2)当用户成功登录时,向用户的电子邮件发送一个6位数的号码,并要求用户输入该号码。如果引脚有效,则验证用户。
我最近看到许多大公司使用密码和你的手机号码。这让我觉得第二种方法比第一种方法更安全(我没有事实,只有假设)。真的吗?
这些方法中哪一个更安全?如果不是,那么实现这个用例的最佳方法是什么。
由于
答案 0 :(得分:1)
您是否看过IP spoofing - 我不建议使用IP地址来保证安全。
1) - 我不明白这是多么安全......
2) - 称为two factor authentication,通常涉及向移动设备发送PIN码,而不是电子邮件。
如果正确实施2)应该是安全的,但这是一个额外的步骤,而不是一个完整的安全模型。我首先看一下authentication that is part of MVC5。
答案 1 :(得分:1)
如果您希望在不从头构建解决方案的情况下快速启动双因素身份验证,请查看可轻松集成到MVC4应用程序的this开源框架。正如Joe R所提到的,依靠IP来提高安全性并不是标准做法。