0

我正在为客户构建一个 Web 应用程序。我想在一个备用域中公开托管它,这样他们就可以访问它并随着它的进展进行审查。我希望它尽可能接近他们在真实域中上线时的体验。

该应用程序是在 Laravel 中构建的,并且大多数页面都需要登录,因此会自动受到保护。然而,有一些是公开的。我显然会设置一个 robots.txt 来阻止搜索引擎的索引,但这并不是我们所知道的万无一失的。

有哪些选项可以安全地为我的客户提供访问权限?到目前为止,这是我的清单:

  • 为尚未受保护的路由实施 HTTP 基本身份验证。但是应用程序级别的身份验证已经足够复杂(使用 RBAC 等),所以我宁愿不这样做。
  • 修改 .htaccess 以仅允许来自其工作网络的 IP 地址。不过,他们有流动的劳动力,所以这不是一个很好的解决方案。
  • 设置VPN。这不是我的最佳选择,而且似乎需要做很多工作。
  • 授予他们启动/停止虚拟主机的权限,或将应用程序置于开发模式。这意味着他们的团队成员必须协调他们的测试会话,这将过于严格。

还有哪些其他选择?

4

1 回答 1

1

你提到的方式在我看来是合理的。我只想补充一点,如果您可以控制 Web 服务器(例如 Nginx),您还可以通过以下方式限制对特定 IP(或 IP 范围)的访问:

server {
  listen 80;
  server_name www.foo.bar;

  location / {
    root /path/to/app/;

    allow   client.public.ip;
    deny    all;
  }
}

这样您就无需担心爬虫访问您的网站、设置 VPN 或检查需要基本身份验证的路由。您只需授予一组 IP 访问整个 Web 应用程序的权限,而没有其他限制。

您可以做的另一件事是设置防火墙规则以禁止除特定 IP 之外的所有内容。或者,您可以设置您的服务器,在某个没人愿意使用的晦涩端口上交付应用程序。您可能想查看这两个选项的ufw(简单防火墙)。例如:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 8325 <-- some random port

然后在端口 8325 上提供应用程序。

于 2017-10-02T22:33:08.523 回答