目前,我的网站在用户进入数据库的条目旁边存储一个会话ID和一个IP地址,然后将其存储在cookie中。如果每个页面上的会话ID和IP地址匹配,那么我们将授予它们访问权限。这似乎不错,但我们希望允许人们在多个IP地址/多个会话上登录该网站。
所以我只是想知道最好和最安全的方法是什么?我们只是在会话中存储用户名和密码,在会话中存储用户名和哈希密码,还是只在数据库的一个新的“会话”表中存储一个唯一的ID,其旁边是用户的ID?那我们就把会话ID存储在饼干里吗?
我不确定篡改会话是否是一件事,但我通常认为这是可能的精英,所以我试图尽可能地安全。我知道编辑饼干也很简单。
该网站在后台使用Web服务。当用户输入他们的登录详细信息时,他们会被发送到服务并被选中,然后返回yay或to。其原因是该服务被不同平台的多个应用程序所使用。因此,基本/简单的成员关系模型在这里并不有效。
发布于 2013-10-16 08:28:35
我在这里完成了以下指南:http://www.codeproject.com/Articles/13032/Custom-MembershipProvider-and-RoleProvider-Impleme和http://logcorner.wordpress.com/2013/08/28/how-to-configure-custom-membership-provider-using-asp-net-mvc4-with-external-login-like-facebook-yahoo-google-or-other-relying-party-accounts-2/
我设法让它与我们的服务一起工作,方法是从客户成员中重写所需的方法,并让它们与我们的服务进行检查并作出相应的响应。效果很好。
示例
    public override bool ValidateUser(string username, string password)
    {
        MyUser newUser = new MyUser 
        {
            EMail = username,
            Password = password
        };
        try
        {
            MyUser user = MyService.Authenticate(newUser);
            if (user.EMail != null && user.IsActivated)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        catch (Exception e)
        {
            return false;
        }
    }它还提供了使用MembershipCreateStatus注册新用户的能力。这让我详细说明了为什么某件事情会失败,而不是像以前那样抛出一个错误。谢谢你给我指明了正确的方向神秘人。
发布于 2013-10-07 14:59:20
如果每个页面上的会话ID和IP地址匹配,那么我们将授予它们访问权限。
你有没有考虑过IP地址很不安全。。此外,它们有可能在一次会议上合法地改变。
听起来你好像已经有了自己的安全保障,如果你在这方面有很好的经验的话,那就没问题了。
我建议您看看MVC提供的安全性,例如查看一下奥奥斯。它应该有你需要的东西。
https://stackoverflow.com/questions/19227844
复制相似问题