在我的 Nuxt 3 应用程序中,我所有的 API 路由似乎都是公共的。这意味着任何人都可以导航到 /api/[route] 并查看所有获取的数据,例如 /api/items 以查看数据库中所有项目的详细信息。可以阻止这种情况吗?如果可以,如何仅允许来自服务器内部的 API 调用通过?我不希望任何人能够看到应用程序内更敏感的数据。
我尝试了服务器中间件,但找不到正确的逻辑。
如果您只想阻止搜索引擎,您可以为
/api/
nginx 配置 添加自定义特定请求标头
例如
X-Special-Header
其值为 YourSpecialValue
server {
listen 80;
server_name yourdomain.com;
location /api {
if ($http_x_special_header != "YourSpecialValue") {
return 403;
}
...
}
}
您可以发送带有标头的请求
X-Special-Header: YourSpecialValue
在您的 Nuxt 应用程序中
但是如果您想要更高级别的保护来防止网络爬虫,那就是另一回事了