对于身份验证逻辑没有新的失败,任何人都可以告诉我,如果我在这里遗漏了一些东西,因为它似乎有点太好了。我使用类似的东西验证用户;
if (validateUser(form.Email, form.Password))
{
return signIn(form.Email);
}
validateUser函数返回一个布尔值。登录然后执行类似的操作;
public void signIn(string email)
{
FormsAuthentication.SetAuthCookie(nameOfUser, false);
}
随后将允许我为将来的所有请求做这样的事情;
string userEmail = User.Identity.Name;
Profile p = Profile.getProfileFor(userEmail);
这似乎有点太简单了,不安全!这里有什么我不知道/任何明显的安全隐患吗?或者这基本上是如何完成的?
此致
麦克
答案 0 :(得分:2)
理论上你应该使用HTTPS来避免中间人攻击,但这不是代码中完成的事情。如果您正在按照应该的方式对密码进行哈希处理,那么从您的代码中就不明显了。
BTW .NET惯例是将PascalCase用于方法名称。
答案 1 :(得分:2)
您可以使用安全性做更多事情:
使用整数标识列而不是电子邮件:
这将使应用更精简,更快。
如果您使用数字而不是电子邮件,黑客将更难将信息(用户)与黑客联系起来。只需通过发送电子邮件
答案 2 :(得分:1)
这是怎么做的,正确的。
要注意的唯一安全风险与所有表单帖子相同,因为最终用户输入浏览器的所有值都以纯文本形式发送回服务器,包括密码。因此,这暴露了某人试图嗅探密码流量的可能性,您可以使用https解决该问题。