2

我正在使用 Laravel 在公共云上托管开发一个 Web 应用程序。现在,可以通过域地址在 Internet 上公开访问该应用程序。但是,我想限制只有连接到组织网络的用户才能使用该应用程序,因为我们不希望该应用程序在家中或其他地方使用。

目前,该组织有 2 个地方(2 个公共互联网网络),他们必须能够访问该应用程序。他们都使用家庭标准互联网,每次互联网重新连接时,IP 地址都会改变。由于我们没有静态 IP 地址,我无法使用 IP 地址过滤器过滤用户。每次重新连接组织网络时,都必须更改 IP 过滤规则。

我的应用程序已经有了可靠的身份验证和授权机制,当然,用户必须知道这些信息,因为他们必须访问应用程序才能工作。但是,这不符合要求。

我曾考虑过 VPN,但它(可能)不起作用,因为如果我们允许用户访问 VPN,他们仍然可以在任何地方访问 VPN 并在工作场所之外使用应用程序。如果我们限制 VPN 客户端只能从特定的 IP 地址访问,那么当 IP 发生变化时,也会出现同样的问题。

总而言之,我想就如何限制从公共 IP 地址连接的用户访问托管在公共互联网上的 Web 应用程序的建议,该公共 IP 地址每次重新连接互联网时都会更改。这个要求可能听起来很奇怪,但事实就是如此。如果您愿意并就这些建议进行讨论,请随时询问更多详细信息。

先感谢您。

4

2 回答 2

1

您可以使用不同的 PHP 方法和变量来检测请求的来源。只需将您的域和组织列入白名单,并通过添加中间件仅允许它们。

此外,您可以使用 Laravel Passport 生成令牌,也可以创建自己的机制,然后使用该令牌来验证请求是否有效。

由于 IP 更改,您可以设置动态 dns 或按照上面评论中的建议。

于 2017-06-27T07:41:10.193 回答
1

您可以在客户端为动态 dns 服务(例如 dyndns)设置客户端。

然后,您可以在服务器端使用它来始终使用该 dns 检查当前 IP。

作为替代方案,您可以仅将网站绑定到 localhost,并且只允许通过 pubkey-enforced SSH 隧道访问它(并使其由客户端的脚本/调度程序自动建立,在用户之外的权限级别上)到达,这样他们就无法在任何地方获取连接所需的私钥)

于 2017-06-27T07:39:07.787 回答