【问题标题】:Trace Client's MAC Address Using PHP/Laravel使用 PHP/Laravel 跟踪客户端的 MAC 地址
【发布时间】:2020-10-30 21:35:46
【问题描述】:

正如您在标题中看到的我想要做什么,现在我知道如果客户端不在同一个网络上,您将无法跟踪客户端的 MAC 地址。但是我读过here in the answer,如果客户是志愿者,您可以获得该信息。但我不知道怎么做。

场景: 具有机密数据的系统需要实现一种登录机制,如果从办公场所和其他设备外部请求登录请求,该登录机制将拒绝该登录请求。如果我实施 IP 跟踪,如果由于某种原因 IP 被更改,真正的用户可能会被锁定。

请告知我如何在客户许可的情况下跟踪他们的 MAC 地址(如果可能的话)。如果我无法追踪 MAC 地址,对于上述情况,有什么更好的方法?

【问题讨论】:

  • 如果授权用户使用不同的计算机怎么办?依赖 MAC 地址有点脆弱,也许您应该寻找其他方法来保护登录。
  • @NigelRen 好吧,如果授权用户尝试使用其他设备时被拒绝,那可能会更好。但我宁愿坚持我目前的情况,并寻求建议以更好地解决上述情况。如果您有另一种方法,那将是非常可观的。谢谢。
  • 双因素身份验证可能有效 - stackoverflow.com/questions/5785781/… 对此进行了一些讨论,并采用了不同的解决方案。
  • @NigelRen 知道了。谢谢!

标签: php laravel security trace mac-address


【解决方案1】:

基本上,你不能。

MAC 地址永远不会传输到将 lan 网段连接到 Internet 的路由器之外。

您无法从服务器获取客户端的 MAC 地址 - 您只能从客户端获取它,这意味着您需要 Javascript 代码 - 您可以'也不能在 javascript 代码中访问 MAC 地址,这也排除了 JQuery。在 PHP 中获取 MAC 的任何尝试都将返回 服务器 MAC 地址,因为那是执行 PHP 代码 的计算机。

MAC 地址 不会在设备所连接的 LAN 之外广播 - 它永远不会离开路由器并传递到 服务器

【讨论】:

  • 是的,我知道我无法在不同的网络上获取客户端的 MAC 地址。但这对我来说是新的,我根本无法得到它。我不会依赖 JS,因为这是一个巨大的安全问题。对于这种特殊情况,有什么更好的方法,我们将不胜感激。
  • @Suad,实际上你不能那样做。因为没有浏览器在浏览时将此类信息发送到服务器端。
  • 不,我的意思是,我提到的场景。因为我试图获取 MAC 地址。除了追踪 MAC 地址,有什么好的方法吗?
【解决方案2】:

“exec()”是一个用于在 PHP 中运行外部程序的函数。它返回命令结果的最后一行。要获取 MAC 地址,请传递返回客户端 MAC 地址的参数“getmac”。 ‘getmac’ 是获取 MAC 地址的 CMD 命令。

要获取MAC地址,我们使用exec()函数。

$macAddr = exec('getmac');

【讨论】:

  • 它将返回执行它的机器的 MAC 地址,即运行 php 脚本的服务器和 exec() 命令。就像@sta 定义的那样,它会给我带来服务器的 MAC 地址而不是客户端。
猜你喜欢
  • 2021-03-18
  • 2011-07-01
  • 2011-10-22
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多