使用ASP.net进行安全认证

时间:2012-03-12 10:10:28

标签: asp.net authentication

对于身份验证逻辑没有新的失败,任何人都可以告诉我,如果我在这里遗漏了一些东西,因为它似乎有点太好了。我使用类似的东西验证用户;

        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);

这似乎有点太简单了,不安全!这里有什么我不知道/任何明显的安全隐患吗?或者这基本上是如何完成的?

此致

麦克

3 个答案:

答案 0 :(得分:2)

理论上你应该使用HTTPS来避免中间人攻击,但这不是代码中完成的事情。如果您正在按照应该的方式对密码进行哈希处理,那么从您的代码中就不明显了。

BTW .NET惯例是将PascalCase用于方法名称。

答案 1 :(得分:2)

您可以使用安全性做更多事情:

  • 加密密码
  • 使用IP地址记录每次登录尝试以识别攻击
  • 使用整数标识列而不是电子邮件:

    这将使应用更精简,更快。

    如果您使用数字而不是电子邮件,黑客将更难将信息(用户)与黑客联系起来。只需通过发送电子邮件

  • ,您就可以从用户那里学到很多东西

  • 缓存身份
  • 使用角色

答案 2 :(得分:1)

这是怎么做的,正确的。

要注意的唯一安全风险与所有表单帖子相同,因为最终用户输入浏览器的所有值都以纯文本形式发送回服务器,包括密码。因此,这暴露了某人试图嗅探密码流量的可能性,您可以使用https解决该问题。