仅允许从 AJAX 呈现的页面调用 AJAX 对 Express+Node 应用终结点进行的调用



我有一个用node.js和express.js构建的Web应用程序。此应用程序呈现页面(假设[host]/homepage),但也有一些API端点(假设[host]/api/getinfo)。

Web应用将面向公众,但我希望 API 终结点只能通过 Web 应用的呈现页面中的 AJAX 调用进行调用。所以在这个例子中,任何人都可以访问[host]/homepage,它呈现一个页面(在某些用户输入后)发出 AJAX 请求[host]/api/getinfo,但人们不应该能够直接查询[host]/api/getinfo(从他们的浏览器/邮递员/其他)

实现这一目标的最佳方法是什么?

我尝试了一个简单的中间件来检查req.get('origin'),但这很容易被欺骗。

我怀疑这个问题有一个明显的答案,基于我对CORS的有限理解,我错过了。

感谢所有发表评论的人。基本答案是:这是不可能的。

如果不是来自允许的网站或来源,如何拒绝 http/https 请求解释了原因

如何阻止其他网页从我的服务器下载媒体?提供了一个适用于一部分情况的解决方案。

相关内容

  • 没有找到相关文章

最新更新