【问题标题】:Laravel API only accessible via vpnLaravel API 只能通过 vpn 访问
【发布时间】:2016-07-27 20:59:03
【问题描述】:

我们正在构建 API,其他应用程序将使用该 API 从我们的应用程序读取/写入数据。

例如: www.example.com/getPayments/useid

要求:上述 API 只能通过 VPN 访问,因此无法从网络调用它。

那么我怎样才能使我们的应用程序中的某些路由只能通过 Laravel 中的 VPN 访问。

【问题讨论】:

  • 我不明白这个问题 - 您没有将它托管在可从网络调用但只能在本地 LAN 中调用的网络服务器上。
  • @Xatenev 它在网络服务器上,现在任何人都可以访问网络上的所有路由,我不希望这些 API 在网络上公开访问
  • 这很容易做到,但通常在 HTTP 服务器(Apache、Nginx)或服务器操作系统级别完成。您是否有特定的原因要在 Laravel 中执行此访问控制?

标签: php api laravel vpn


【解决方案1】:

编写一些中间件来根据访问者的 IP 地址限制对某些路由的访问应该适合您,只要 VPN 的 IP 地址已包含在请求的 HTTP 标头中或可通过 PHP 访问另一个$_SERVER 变量。您需要检查发送的 HTTP 请求的标头以找到包含您的 VPN 的 IP 地址的标头,然后在您的中间件中使用它。

您可以编写一个轻量级中间件组件来执行此操作,也可以使用现有包将 VPN 的 IP 地址仅列入您要保护的路由的白名单。

Firewall 是现有的 Laravel 服务提供商,可以帮助您解决此问题。

【讨论】:

  • 谢谢大卫,我认为防火墙是正确的方法,我现在正在使用它。谢谢推荐
猜你喜欢
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 2013-11-15
  • 2020-02-07
  • 1970-01-01
相关资源
最近更新 更多