有没有轮子可以加密前端请求后解密数据后传给后端?

2023-07-10 16:31:58 +08:00
 Baloneo

加密后的前端数据->?解密数据,映射接口地址->后端明文->?加密数据->前端解密

要求前端 F12 看到的请求数据是加密的

2479 次点击
所在节点    编程
27 条回复
noe132
2023-07-10 16:37:15 +08:00
前端加密最多就是个混淆的效果。最简单的把请求体用 aes 过一遍就行
Baloneo
2023-07-10 16:40:27 +08:00
@noe132 就是这种混淆就可以了 只是需要做接口名称映射+解密成明文给后端服务
tool2d
2023-07-10 16:40:56 +08:00
前端不用 json 就行了.

我前端都是 gRPC 之类的二进制数据,F12 要处理还挺麻烦的。
tool2d
2023-07-10 16:43:03 +08:00
99%的前端应该不会花大力气去写代码处理二进制数据。

托了 wasm 福气,我就是那个 1%的少数人群。
u20237
2023-07-10 16:51:57 +08:00
我懂一点点后端相关的技术,但我不太懂前端,我讲出来了 过了一段时间就被破解了。。。

加密/混淆方法是有时间限制的,不太可能做一个长时间都不会被破解的方法
xiangyuecn
2023-07-10 17:00:49 +08:00
RSA 加密,公钥可以放前端。不用去考虑什么二进制不二进制的 还有 性能不性能的。不用考虑 AES 。
xiangyuecn
2023-07-10 17:02:49 +08:00
😂漏了,服务器端数据还要加密,那还是 AES 吧
linauror
2023-07-10 17:58:10 +08:00
要想做靠谱点,就使用非对称加密,比如 RSA ,对称加密在前端加密,还是会被搞出来
mdn
2023-07-10 18:31:58 +08:00
AES + RSA

1. 前端 js 随机生成 AES key
2. AES 加密 data ,RSA 公钥加密 AES key
3. {key:..., data: ...} 传给后端( AES key 是 js 随机生成在内存中,前端代码中也没有 RSA 私钥,理论上是 key 保密的,用户自己也无法拿到)
4. 后端收到数据 RSA 私钥解密 key ,在用 AES key 解密 data
5. 接口返回数据 RSA 私钥加密 key ,key 加密返回数据,回传给前端(因为公钥是存在前端代码中,所以无法完全保密)
Jirajine
2023-07-10 18:39:56 +08:00
@mdn 前段整非对称加密没有意义,因为不需要解密,只需要找到你加密前的数据就行了。
客户端是客户的客户端。
XiLingHost
2023-07-10 18:41:28 +08:00
试试 ECDHE 握手+AES 加密,参考 tls 的四次握手做法就好了
lianyue
2023-07-10 18:44:56 +08:00
body 数据带 gzip,br 压缩?? Content-Encoding gzip
Content-Encoding br ???
me1onsoda
2023-07-10 18:51:18 +08:00
@tool2d grpc 前后端对接的时候头不炸吗?
tool2d
2023-07-10 18:53:41 +08:00
@me1onsoda 第一次比较炸,调通过一次后,用起来和 json 没啥区别的。都是底层封装。
walpurgis
2023-07-10 19:00:30 +08:00
这种都是伪需求,如果都能开 f12 了,无论什么加密方式,直接在前端加密函数上打个断点,所有数据都出来了
fzls
2023-07-10 19:06:13 +08:00
你的数据在客户端使用的时候不是明文的吗-。-难道全程都是加密状态吗
liantian
2023-07-10 19:08:17 +08:00
其实站在安全的角度,这样不好…

你的加解密对于 waf 那是天书,对于有些模拟操作的渗透工具是儿戏…

除非后端是输入输出验证全部都自己做的很好…
XiLingHost
2023-07-10 19:11:43 +08:00
@walpurgis 可以用 wasm 写,这样要打断点就相当麻烦了
zsj1029
2023-07-10 19:19:03 +08:00
https 不用担心中间人
如果为了防止重放攻击,客户端调试破解请求,才考虑上加密
js 的普通混淆加密,可被解读,所以除了 wasm 没有真的好办法
Cosmic4764
2023-07-10 19:42:49 +08:00
还是二进制好一些把,不论什么是传参还是 file 文件,都转成二进制发送。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955561

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX