首页 > 解决方案 > 使服务器应用程序仅接受来自同一主机中客户端应用程序的请求

问题描述

我有一个 Angular 和 php 应用程序托管在同一个共享主机中,并且可以从同一个域 example.com 访问。php 应用程序公开了一个 rest api,我希望这个 api 只能从 angular 应用程序访问。

这两个应用程序都没有用户身份验证。

标签: phpapachehostingshared-hosting

解决方案


最好的方法是将您的后端放置在私有子网中,前端角度可以通过内部网络路由访问该子网。

                       [ Your network /16 ]
            [ Public Subnet /24 ] [ Private Subnet /24 ]
               [Frontend]  <-  Route ->   [Backend]

但是根据您的情况,您将两者托管在同一个公共服务器实例中。以上建议不适用。由于您不能在网络层限制它,您可以查看应用程序层,并且可以使用 Web 服务器配置扩展,例如 .htaccess,您可以创建一个只允许前端请求的规则。这是应用层限制。


推荐阅读