【发布时间】:2018-05-30 05:31:27
【问题描述】:
好的,所以 atm 我有一个使用 Nuxt JS 构建的前端应用程序,使用 Axios 向我的 REST API(单独)发出请求。
如果用户在网站上进行搜索,API URL 在 XMLHttprequests 中可见,因此每个人都可以根据需要使用 API。
最好的方法是什么,以便只有通过我的网站搜索的用户才能访问 API,而直接访问 URL 的人会被拒绝。我想使用某种令牌系统,但最好的方法是什么?智威汤逊? (用户从不登录,因此没有“身份验证”)
谢谢!
【问题讨论】:
-
所以,基本上你要确保人们使用浏览器访问你的 API,如果是这种情况我有坏消息要告诉你,人们总能找到一种方法来绕过它,如果他们愿意,使用一些东西比如 reCAPTCHA 是一种确保真实用户访问您的 API 的方法。
-
好吧,我想要一种以某种方式限制对 API 的访问的方法。当我将前端托管在单独的端口上时,IP 限制是否可以成为一种方式。所以只允许在同一台机器上从该端口直接调用(例如 API 在 5000 端口上运行,前端应用在 5001 上运行。我可以说只接受来自 5000 的调用吗?
-
当然,您可以隔离您的 API 以仅接收来自前端应用程序的调用,那么,您将如何避免让非浏览器访问您的前端?
-
至少前端只返回渲染的组件(带有 Nuxt 的 SSR),所以我猜它更难获取数据。然后,您必须抓取该网站。但我想,如果你真的想的话,你仍然可以通过一种或另一种方式获取数据。我只是想让它变得更难,然后只是调用 api
-
正如我所说,你无法避免它,只会让它变得更难,一种简单的方法是放置 reCAPTCHA。
标签: node.js express vue.js axios nuxt.js