如何使用 express 和 nuxtjs encrypt/decrypt API 数据来防止抓取?

How to encrypt/decrypt API data with express and nuxtjs to prevent scraping?

我想加密我的 API 数据,这样用户就无法在网络选项卡中看到它,也无法在类似 window.__nuxt__ 对象的明文中看到它。

我现在这样做的方式:

  1. 使用秘密字符串(如密码)在后端加密数据
  2. 发送加密数据到前端
  3. 在客户端解密(使用与后端相同的密码)

问题出在这里:通过浏览浏览器中捆绑的 JavaScript 文件可以找到解密我的数据的函数。

虽然函数被混淆了,但有可能对其进行逆向工程。由于密码存储在函数中(它必须是,对吧?因为我在客户端没有 process.env 变量)每个人都可以(理论上)抓取我的数据。

防止这种情况的最佳方法是什么?

我知道数据最终会在浏览器中可见。我只是不希望它以明文形式显示。

顺便说一句,我后端用的是express,前端用的是NuxtJS。

没有办法阻止这种情况。你能做的就是让它变得更难。

最终,如果数据在浏览器中对用户可见,您可以从内存中的 DOM 中获取它。如果您需要用户查看数据,则必须提供将加密数据转换为原始信息的所有代码。

您可以混淆代码,但您的攻击者甚至不需要对其进行逆向工程来获取数据,他们只需要 运行 它即可。