我们希望 AutoLogin 功能允许用户使用链接直接登录到我们的 Web 应用程序。实现这一目标的最佳方法是什么?
我们有以下方法。
1) 将用户凭据(用户名/密码)存储在 cookie 中。发送 cookie 进行身份验证。
例如 http://www.mysite.com/AutoLogin (这里的用户名/密码将在 cookie 中传递)
或在链接 URL 中传递用户凭据。
http://www.mysite.com/AutoLogin?userid=<>&password=<>
2)生成随机令牌并将用户随机令牌和用户IP存储在服务器端数据库中。
当用户使用链接登录时,验证服务器上的令牌和用户 IP。
例如
http://www.mysite.com/AutoLogin?token=<>
第一种方法的问题是,如果黑客将链接/cookie 从用户机器复制到他可以登录的另一台机器。
第二种方法的问题是代理后面同一组织的所有用户的用户 ip 都是相同的。
从安全角度来看,哪一个更好?如果有比上述更好的解决方案,请告诉我们。