如何使用 express 和 nuxtjs encrypt/decrypt API 数据来防止抓取?
How to encrypt/decrypt API data with express and nuxtjs to prevent scraping?
我想加密我的 API 数据,这样用户就无法在网络选项卡中看到它,也无法在类似 window.__nuxt__
对象的明文中看到它。
我现在这样做的方式:
- 使用秘密字符串(如密码)在后端加密数据
- 发送加密数据到前端
- 在客户端解密(使用与后端相同的密码)
问题出在这里:通过浏览浏览器中捆绑的 JavaScript 文件可以找到解密我的数据的函数。
虽然函数被混淆了,但有可能对其进行逆向工程。由于密码存储在函数中(它必须是,对吧?因为我在客户端没有 process.env 变量)每个人都可以(理论上)抓取我的数据。
防止这种情况的最佳方法是什么?
我知道数据最终会在浏览器中可见。我只是不希望它以明文形式显示。
顺便说一句,我后端用的是express,前端用的是NuxtJS。
没有办法阻止这种情况。你能做的就是让它变得更难。
最终,如果数据在浏览器中对用户可见,您可以从内存中的 DOM 中获取它。如果您需要用户查看数据,则必须提供将加密数据转换为原始信息的所有代码。
您可以混淆代码,但您的攻击者甚至不需要对其进行逆向工程来获取数据,他们只需要 运行 它即可。
我想加密我的 API 数据,这样用户就无法在网络选项卡中看到它,也无法在类似 window.__nuxt__
对象的明文中看到它。
我现在这样做的方式:
- 使用秘密字符串(如密码)在后端加密数据
- 发送加密数据到前端
- 在客户端解密(使用与后端相同的密码)
问题出在这里:通过浏览浏览器中捆绑的 JavaScript 文件可以找到解密我的数据的函数。
虽然函数被混淆了,但有可能对其进行逆向工程。由于密码存储在函数中(它必须是,对吧?因为我在客户端没有 process.env 变量)每个人都可以(理论上)抓取我的数据。
防止这种情况的最佳方法是什么?
我知道数据最终会在浏览器中可见。我只是不希望它以明文形式显示。
顺便说一句,我后端用的是express,前端用的是NuxtJS。
没有办法阻止这种情况。你能做的就是让它变得更难。
最终,如果数据在浏览器中对用户可见,您可以从内存中的 DOM 中获取它。如果您需要用户查看数据,则必须提供将加密数据转换为原始信息的所有代码。
您可以混淆代码,但您的攻击者甚至不需要对其进行逆向工程来获取数据,他们只需要 运行 它即可。