我创建了一个论坛,它在登录时使用 PHP 会话来确定用户 ID,并使用 cookie 进行登录。
我想我有两个问题:
- 这是最好/最安全的方法吗?
- Cookies可以通过javascript的地址栏手动添加,存在巨大的安全隐患。有没有办法解决?
谢谢!
首先,确保您使用的是 https 而不是 http。这将防止您的流量被嗅探和利用。
其次,生成尽可能随机的值以用作 cookie 中的标记。这就是有多少大型网站进行用户跟踪。在服务器端有一个令牌映射到用户,用于跟踪身份。请记住:来自客户端的任何内容都是不可信的,并且可能被篡改。
第三,使用HMAC使篡改更加困难。您不希望用户能够暴力破解其他令牌。
编辑:
在构建此系统时,您可能会发现这些其他 SO 问题/答案很有帮助:
关于创建和使用令牌的详细信息(不一定必须是适用的 REST 服务): REST Web 服务身份验证令牌实现
创建好的令牌(不要使用 microtime):使用 microtime() 生成密码重置令牌是不好的做法