开发者社区 问答 正文

pc端考勤怎么判断是在本公司的电脑上考勤?

    
     b/s系统,一个考勤的功能模块, 有pc端的考勤,限制是必须在本公司的网络上执行考勤.


    问题来了,怎么判断是不是本公司的网络?请问各位大神,有什么好的方案吗?


    我想的是:
      系统记录公司路由器的mac地址,然后根据考勤请求获得请求网络的路由器的mac对比实现。
  
       现在遇到的问题是,用java 怎么获得请求网络的路由器的mac(要支持win linux系统),有写过类似的代码的没有?


展开
收起
烟圈206 2015-10-23 09:59:54 7278 分享 版权
阿里云 AI 助理回答

在阿里云的架构下,直接获取客户端路由器MAC地址的方法并不推荐,因为这涉及到用户端的安全隐私和实施难度。对于您的需求,更推荐使用安全、高效且易于实现的方式来验证用户是否处于公司网络内。以下是一些建议方案:

1. IP地址白名单

  • 原理:为公司网络分配固定的IP地址段,然后在系统中设置这些IP段为允许考勤的白名单。
  • 实施
    • 在服务器端,对每个考勤请求的源IP地址进行检查,确认其是否属于公司网络的IP地址段。
    • 使用Java可以简单通过HttpServletRequest对象获取客户端IP地址。

2. VPN或专有网络(VPC)

  • 原理:要求员工远程工作时通过公司VPN接入,或者在云上利用阿里云VPC构建与公司内部网络相通的环境。
  • 实施
    • 通过阿里云的SSL-VPN或IPSec-VPN服务,确保只有通过认证的设备能访问内部系统。
    • VPC内的应用可以直接限制只允许来自特定子网的流量。

3. 企业级身份验证与访问管理(如RAM)

  • 原理:结合阿里云的资源访问管理(Resource Access Management, RAM)和服务端的身份验证机制,确保只有经过身份验证的用户才能访问考勤系统。
  • 实施
    • 利用阿里云RAM为员工创建账号,并配置相应的权限策略。
    • 考勤系统登录时,除了常规的用户名密码外,还可以集成阿里云STS临时凭证验证,增强安全性。

4. 客户端证书验证

  • 原理:为每个允许考勤的设备或用户颁发数字证书,系统验证证书来确定请求来源的合法性。
  • 实施
    • 生成并分发客户端证书给员工的设备。
    • 服务器端验证HTTP请求中的客户端证书,确保请求来自于拥有有效证书的设备。

关于获取路由器MAC的问题

直接从Java Web应用中获取客户端路由器的MAC地址是不可行的,因为Web应用标准不允许直接访问这样的底层硬件信息,且出于安全考虑,浏览器也不会提供这样的接口。上述建议的方案更为可行且符合行业实践。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: