php - 如何将 Web 应用程序的访问权限限制在一台机器上?

标签 php mysql security authentication restrict

我需要确保访问我的 Web 应用程序的每个用户都只能从一台机器上执行此操作,因此 100 个用户就意味着 100 台机器。什么是最好的解决方案?在首次登录时检测和存储 IP 是个好主意吗?我认为即使在 session 的生命周期内 IP 也可能会改变,对吗?我还考虑在用户首次登录时存储 cookie。然后将这些 cookie 分配给用户,就像我已经使用密码和用户名所做的那样,并且每次访问应用程序时检查是否存在该 cookie。

请告诉我您认为什么是最佳解决方案。如果重要的话,我的后端是 php/mysql。

编辑:我需要澄清一下...这是对正常 session 管理的补充。我需要限制用户只能从一台特定机器登录到 Web 应用程序。因此,如果用户最初是在工作时从他的计算机登录的,而我存储了它的 ip/cookie/等,那么客户端注销(甚至不注销)、回家并尝试登录将无法做到这一点。我同意这个可怕的想法,但客户坚持 :)

最佳答案

对于移动客户端或在有线和无线网络之间切换的客户端,IP 地址可能会发生变化。您最好的选择可能是在每个客户端首次连接时向其提供一个随机生成的 UID(如果它还没有 cookie)。然后您可以检查是否没有使用两个不同的 UID 连接相同的用户名。

诀窍是您需要确保将此 UID 超时,这样如果用户转到另一台计算机,他们就不会被锁定。也许对 UID 进行一次更改是可以的,但是他们不能返回到已经使用过的 UID 吗?

关于php - 如何将 Web 应用程序的访问权限限制在一台机器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3189239/

相关文章:

php - CURL vs allow_url_fopen 获取图片哪个更安全?

mysql - 无法通过 '127.0.0.1' 连接到 Sequel Pro,但可以通过终端通过 'localhost' 连接

mysql - MariaDB 中密码/登录路径的存储位置(相当于 mysql-config-editor)?

mysql - 如何使用 SQL MAX(SUM()) 函数

java - 编写安全的 RMI 服务器-客户端应用程序

python-3.x - 如何修复 python3 中的 CVE-2019-19646 Sqlite 漏洞

php - 如何在laravel中使用特殊消息管理特殊错误

php - 获取类函数的参数数量

php - 将 mysql_num_rows 分成 6x4

php - php 和 MySql 中的高级搜索词