Api 只能从受信任的站点访问,不能通过任何浏览器、邮递员等访问
Posted
技术标签:
【中文标题】Api 只能从受信任的站点访问,不能通过任何浏览器、邮递员等访问【英文标题】:Api only accessible from trusted sites not by any browser, postman & etc 【发布时间】:2020-05-26 09:43:47 【问题描述】:可以让 API 只响应特定的请求吗?
例如我在 http://api.example.test
上有 API
而且我不希望任何人通过简单地使用网络浏览器并输入该 url,或使用邮递员执行任何 POST 请求或任何其他事情来访问它。
我希望api只能通过特定站点示例http://example.test
访问
这将像这样工作:
http://example.test
就像管理面板,控制该 api 的所有其他内容
http://api.example.test
只是一个api数据库来存储所有信息。这个网站没有前端。
api 使用 Laravel,并且 CORS 应用只允许白名单域。但这并不妨碍任何直接请求或邮递员等。
如果有任何来源,我可以在哪里阅读有关此内容或任何解释的信息。我真的很感激它
谢谢
【问题讨论】:
【参考方案1】:传入流量被服务器配置阻止或允许,而不是来自应用程序本身的代码库(tl;dr,这与 Laravel 无关)。 例如,通过在您的 Apache2 上配置虚拟主机,或通过修改您的 EC2 实例(在 AWS 上)的安全组,您可以专门将某些 IP 列入白名单、黑名单,使其无法访问您的位置。
这是 Apache 虚拟主机的样子:
<VirtualHost *:80>
ServerName example.net
DocumentRoot /public
<Directory "/public">
Order Deny,Allow
Deny from all
Allow from 10.10.10.10
Allow from 10.10.11.0/24
</Directory>
【讨论】:
以上是关于Api 只能从受信任的站点访问,不能通过任何浏览器、邮递员等访问的主要内容,如果未能解决你的问题,请参考以下文章