基本上我只是想知道什么是一个很好的方法来完成我想做的事情。我有一个允许用户使用不同帐户类型的ID和PWD登录的系统
该应用程序是基于浏览器的(LAMP堆栈)时钟,我想要的是允许任何人从任何计算机或设备登录(完成),但也只允许某些计算机能够打卡或打卡。因此,我必须登录工作计算机才能打卡,但可以在家中登录并查看营业时间等。
关于良好解决方案的任何想法?
答案 0 :(得分:2)
另一种选择可能是将这些功能的使用限制在某些时间(例如上午9点至下午5点办公时间)。
小心基于IP的东西,因为IP可以改变。
另一种解决方案:两步验证。
答案 1 :(得分:0)
更好的方法是通过MAC地址进行限制,但是非常复杂。 其他方式应考虑客户端IP限制,时间范围限制,用户限制。
的帖子答案 2 :(得分:0)
工作是你希望他们能够从中获取的唯一地方吗? 工作中的PC是否具有静态IP? 如果是这样,您可以限制不是来自其中一个IP的请求 - 您也可以过滤MAC地址。
答案 3 :(得分:0)
我在时钟应用程序中做了类似的事情。
我检查用户的IP是否有一个我们的局域网IP(例如192.168。?。?),因为该范围内不应该有任何公共IP。如果它是有效的局域网IP,那么它们可以进入/退出。如果不是,那么他们就不能进/出,但仍然可以检查他们的工作时间。
这可能不适用于您的情况,具体取决于您希望计算机能够进入/退出的要求。
答案 4 :(得分:0)
您无法仅依靠客户信息(来自请求)来验证您的权限。像ip,cookie,浏览器版本等。所以我的建议是你依赖客户端设备信息,如磁盘序列号,设备序列号等。这种方法的问题是如何获取这些信息。
正如您所说,这是一家公司的软件,我会执行以下步骤。
1 - 开发小程序以获取特定的客户端设备信息(设备序列ID,硬盘序列ID,主板序列ID等)
1.a - 您必须识别设备并映射可能的特定信息。就像它是一台计算机一样,你得到的是硬盘序列号,如果它是一部手机你必须知道它是什么操作系统并得到设备序列号
2 - 为了让这个小程序使用权限,你必须创建一个证书,用户必须接受它(因为它是一个公司,它不应该是一个问题)
3 - 支持此功能的数据库结构,例如:User,device_type,device(fk to device_type),user_device(n-m table)
4 - 从第一个模型开始,你可以对如下权限感到疯狂:
4.a - 让表user_device_permission具有另一个表权限,并从表user_device_permission_time(这将指定特定设备上用户可以执行某些特定事情的时间)