开发者社区> 问答> 正文

即使数据不敏感,使用身份验证保护API是一种好的做法还是必要的?

我的Vue.js应用程序通过Node.js后端与数据交互,可访问敏感数据和非敏感数据。我已经能够使用google身份验证API保护节点服务器上的API,即使用敏感数据(例如更新定价信息)的API。这要求用户必须先使用Google帐户登录才能与这些API进行互动。

我现在正在尝试保护简单地检索非敏感数据的API (例如名称,描述,我销售的产品的价格等),这样即使没有某种形式的身份验证,也无法直接访问所述API。即。如果我使用像Postman这样的东西直接从API检索数据,而不进行身份验证,我将无法获得任何数据。但是,这些API是从Vue.app的一部分访问的,不需要登录。即。网站上的用户无需先登录即可查看产品,定价等信息。

为了保护这些“非敏感”API,我必须将一些“秘密”,例如API密钥从Vue前端传递到Node后端。我相信我已经完成的其他2个帖子(这里和这里)在运行时不可能将环境变量传递到Vue应用程序(我正在使用Vue CLI 3)。这使我不得不将API密钥硬编码到前端代码中,这意味着它不再是“秘密”或安全的。

我本质上是尝试进行“应用程序身份验证”但没有能力在运行时在Vue中传递ENV变量我不知道如何安全地执行此操作。

我在互联网上看到的一切都指向:

在构建时将ENV变量传递给Vue(在这种情况下不安全); 要么
我错过了一些想要在运行时首先将ENV变量传递给Vue的东西。
问题:我是否通过尝试保护不敏感的数据来过度思考或过度复杂化?

展开
收起
k8s小能手 2018-12-14 15:12:17 1910 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    这样做的一种方法如下:

    验证成功后,生成JSON Web令牌
    将令牌发送回客户端(Vue应用程序)并将其存储在浏览器的本地存储中
    在您要保护的API路由上添加一个函数,该函数将检查请求是否包含您在步骤2中提供的令牌。您可以将令牌作为请求正文的一部分或可能是标头发送。
    这是一种保护API的简单而有效的方法。

    2019-07-17 23:21:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载