加密后的前端数据->?解密数据,映射接口地址->后端明文->?加密数据->前端解密
要求前端 F12 看到的请求数据是加密的
1
noe132 2023-07-10 16:37:15 +08:00 via Android
前端加密最多就是个混淆的效果。最简单的把请求体用 aes 过一遍就行
|
3
tool2d 2023-07-10 16:40:56 +08:00
前端不用 json 就行了.
我前端都是 gRPC 之类的二进制数据,F12 要处理还挺麻烦的。 |
4
tool2d 2023-07-10 16:43:03 +08:00 1
99%的前端应该不会花大力气去写代码处理二进制数据。
托了 wasm 福气,我就是那个 1%的少数人群。 |
5
u20237 2023-07-10 16:51:57 +08:00
我懂一点点后端相关的技术,但我不太懂前端,我讲出来了 过了一段时间就被破解了。。。
加密/混淆方法是有时间限制的,不太可能做一个长时间都不会被破解的方法 |
6
xiangyuecn 2023-07-10 17:00:49 +08:00
RSA 加密,公钥可以放前端。不用去考虑什么二进制不二进制的 还有 性能不性能的。不用考虑 AES 。
|
7
xiangyuecn 2023-07-10 17:02:49 +08:00
😂漏了,服务器端数据还要加密,那还是 AES 吧
|
8
linauror 2023-07-10 17:58:10 +08:00
要想做靠谱点,就使用非对称加密,比如 RSA ,对称加密在前端加密,还是会被搞出来
|
9
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 加密返回数据,回传给前端(因为公钥是存在前端代码中,所以无法完全保密) |
11
XiLingHost 2023-07-10 18:41:28 +08:00
试试 ECDHE 握手+AES 加密,参考 tls 的四次握手做法就好了
|
12
lianyue 2023-07-10 18:44:56 +08:00
body 数据带 gzip,br 压缩?? Content-Encoding gzip
Content-Encoding br ??? |
15
walpurgis 2023-07-10 19:00:30 +08:00 via iPhone
这种都是伪需求,如果都能开 f12 了,无论什么加密方式,直接在前端加密函数上打个断点,所有数据都出来了
|
16
fzls 2023-07-10 19:06:13 +08:00
你的数据在客户端使用的时候不是明文的吗-。-难道全程都是加密状态吗
|
17
liantian 2023-07-10 19:08:17 +08:00 via iPhone
其实站在安全的角度,这样不好…
你的加解密对于 waf 那是天书,对于有些模拟操作的渗透工具是儿戏… 除非后端是输入输出验证全部都自己做的很好… |
18
XiLingHost 2023-07-10 19:11:43 +08:00
@walpurgis 可以用 wasm 写,这样要打断点就相当麻烦了
|
19
zsj1029 2023-07-10 19:19:03 +08:00
https 不用担心中间人
如果为了防止重放攻击,客户端调试破解请求,才考虑上加密 js 的普通混淆加密,可被解读,所以除了 wasm 没有真的好办法 |
20
Cosmic4764 2023-07-10 19:42:49 +08:00
还是二进制好一些把,不论什么是传参还是 file 文件,都转成二进制发送。
|
21
walpurgis 2023-07-10 20:35:31 +08:00
@XiLingHost wasm 内的数据最终还是要从 js 进出的,对于 js 来说 wasm 就是一个黑盒函数而已,我想拿数据并不需要了解它的实现,我可以在它外面打断点直接调用它
|
22
amlee 2023-07-11 00:18:19 +08:00
我感觉是伪需求,前端只要能开 f12 ,无论如何都能拿到数据。只要在前端加密前,解密后,打上断点就行
|
23
XiLingHost 2023-07-11 08:14:46 +08:00
@walpurgis https://www.egui.rs/ 参考这个,你觉得该怎么打断点
|
24
dengshen 2023-07-11 10:03:48 +08:00 via iPhone
看看谷歌的接口吧。数据看起来全是乱码
|
25
mdn 2023-07-11 10:53:44 +08:00
|
26
mdn 2023-07-11 10:58:08 +08:00
二进制只是一种编码形式,没有加密,直接解码就能得到内容
|
27
jianyang 2023-10-07 15:49:51 +08:00
我认为前端最大的加密就是混淆
不管你用什么加密方式你重要写在 JS 中吧、前端逆向最麻烦的点应该在于处理各种混淆 至于数据加密时间戳什么的、只要你对你的混淆有足够的信心、随便写个位移算法就够了 |