【问题标题】:Station ID - more than IP站号——不仅仅是IP
【发布时间】:2023-03-22 16:21:01
【问题描述】:

我正在开发内部 PHP 应用程序,用户只能从我们的网络登录(我们在专用 IP 上,应用程序正在检查 $_SERVER['REMOTE_ADDR'] 如果匹配我们的 IP,如果不匹配,则通过 - 再见

但是,我如何识别从哪个站用户登录? 使用 cookie 不起作用 - 这些是在 MS StedyState 控制下工作的 Windows 站,每次登录都会删除所有 cookie 我不需要像完整的 MAC 地址这样的花哨的东西,只需要任何唯一的 ID(不能是应用程序用户名 - 因为用户使用不同的站点)

有什么想法吗? 也许 Javascript 能够从站的浏览器(IE 8)中获取一些独特的细节并将其作为隐藏输入传递?

本休

【问题讨论】:

  • var 转储 $_SERVER 看看你有什么
  • AFAIK 你不能依赖 $_SERVER['REMOTE_ADDR'] 作为请求的真实 IP。你可以在客户端伪造它。
  • @controlfreak123 你错了,不管你是什么意思
  • 二校弹片。如果您在 $_SERVER['REMOTE_ADDR'] 中伪造了 IP 地址,那么服务器将不知道将网页请求发回何处。您可以伪造它的唯一方法是使用代理服务器,但是如果终端使用 SteadyState 并且如 OP 所说的那样在内部网络上,这并不实际(特别是如果工作站被锁定以现在允许新安装或任何东西)。

标签: php javascript


【解决方案1】:

我认为这不会发生。除非它是一个非常简单的网络,否则无论如何您都不会获得 MAC。如果这是一个内部的事情,也许你可以部署一些改变用户代理字符串的东西。您可能只需制作一个 Active-X 或其他东西,然后让用户运行一次。可以修改用户代理以获取第一个 NIC 的 Mac 地址或类似的东西。只是一个想法。

【讨论】:

  • 你能开发一个 Active-X 部件吗...我可以访问每个站点,所以我可以在每个站点上放置一个文件,例如。 unique_id.txt 里面有 id,我如何通过 javascript / active-x 读取这个文件并将内容放在隐藏输入中?
【解决方案2】:

如果您在您和您的应用程序之间使用任何排序的传出代理,则可以将其配置为传递X_FORWARD_IP,这绝对不安全(任何其他客户端也可以传递它)但可以配置指示原始请求来自哪个内部 ip。

【讨论】:

    【解决方案3】:

    我过去使用过Mozilla Prism,并将每台机器上的用户代理更改为唯一ID(主要使用棱镜,因为很容易在安装时更改配置文件中的用户代理并将其锁定为标准用户无需编辑)。

    我只是想知道,您不能使用内部 IP 地址作为唯一标识符,因为每个工作站的 IP 应该是唯一的。如果您使用的是活动目录,您可能会使用 php 中的 ldap 来检查谁(哪个用户)在任何特定的工作站上登录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 2022-01-02
      • 2015-08-28
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多