php - 使服务器应用程序仅接受来自同一主机中客户端应用程序的请求
问题描述
我有一个 Angular 和 php 应用程序托管在同一个共享主机中,并且可以从同一个域 example.com 访问。php 应用程序公开了一个 rest api,我希望这个 api 只能从 angular 应用程序访问。
这两个应用程序都没有用户身份验证。
解决方案
最好的方法是将您的后端放置在私有子网中,前端角度可以通过内部网络路由访问该子网。
[ Your network /16 ]
[ Public Subnet /24 ] [ Private Subnet /24 ]
[Frontend] <- Route -> [Backend]
但是根据您的情况,您将两者托管在同一个公共服务器实例中。以上建议不适用。由于您不能在网络层限制它,您可以查看应用程序层,并且可以使用 Web 服务器配置扩展,例如 .htaccess,您可以创建一个只允许前端请求的规则。这是应用层限制。
推荐阅读
- struts2 - Struts2 表单字段作为请求属性提交
- amazon-iam - AWS IAM - 如何禁止用户通过控制台进行更改,但允许通过 CLI 更改 API
- eclipse - 在 Eclipse 中,如何在没有 Eclipse 处于前台的情况下使本地 tomcat 服务器重新发布
- java - 我希望用户在 android 中创建自己的课程
- c# - 为事件准备单元测试
- css - JavaFX 的布局选择器
- webassembly - 从不同语言编译的 WebAssembly 二进制文件的大小如何比较?
- c# - 在字典中存储代表
- typescript - Nuxt.js 中的代理路由
- java - 使用 Orika 映射器的两个调用的日期格式不同