首页 > 解决方案 > Api 只能从受信任的站点访问,不能通过任何浏览器、邮递员等访问

问题描述

是否可以让 API 仅响应特定请求?

示例我有 APIhttp://api.example.test

而且我不希望任何人通过简单地使用网络浏览器并输入该 url 或使用邮递员执行任何 POST 请求或任何其他事情来访问它。

我希望 api 只能通过特定站点示例访问http://example.test

这将像这样工作:

http://example.test就像管理面板一样控制该 api 的所有其他内容

http://api.example.test只是一个 api 数据库来存储所有信息。本站没有前端。

该 api 使用Laravel,并且 CORS 适用于仅允许白名单域。但这并不妨碍任何直接请求或邮递员等。

如果有任何来源我可以在哪里阅读有关此内容或任何解释。我真的很感激

谢谢

标签: laravelapilaravel-5requestcross-domain

解决方案


传入流量被服务器配置阻止或允许,而不是来自应用程序本身的代码库(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>   

推荐阅读