
1 sduoduo233 2023-08-20 13:12:54 +08:00 via Android 让逆向更复杂 |
2 lsk569937453 2023-08-20 13:13:36 +08:00 via Android 可以混淆 js 增加破解难度。 一切的一切只是为了增加爬虫的成本。 |
3 m0unta1n886 2023-08-20 13:15:09 +08:00 你这个问题就像,为什么要用 md5 ,有的值撞库也能撞出来 |
4 tool2d 2023-08-20 13:15:40 +08:00 via Android js 混淆后代码一多,没那么容易被你破解的。 |
5 ruixue 2023-08-20 13:16:51 +08:00 能增加一点门槛就能减少很多攻击了,就类似把 ssh 端口改成高位随机端口,避免不了针对性的攻击但也能很大程度上降低被大撒网式攻击的概率,而且查看源码也未必都能破解,比如非对称加密就破解不了 |
6 ShoreNinth 2023-08-20 13:16:55 +08:00 via Android 就加密来说,算法已经不需要 |
7 94 2023-08-20 13:17:15 +08:00 和前端的代码混淆一样的作用啊,增加难度和门槛。 或者说防止因为明文导致中间传输、转发层面的一些暴露风险,也可以避免在后端日志层面出现的暴露。 |
8 ShoreNinth 2023-08-20 13:19:31 +08:00 via Android (接上)被加密了,更重要的是秘钥 |
9 yinmin 2023-08-20 13:33:21 +08:00 via iPhone 为保障数据安全的加密,启用 https 即可。前端加密更多的是为了防爬虫,增加爬虫开发成本。 |
10 weekidjoker OP 嗯,明白了,谢谢大家。主要是增加逆向的成本,但还是防不了有心人 |
11 geelaw 2023-08-20 14:29:47 +08:00 via iPhone 要回答你的问题,第一步是搞清楚你说的“破解”是什么意思。 |
12 MIUIOS 2023-08-20 14:53:12 +08:00 复杂的算法基本可以难倒一大批小白了,但如果真有心想搞的人一样能拿下,所以这东西存在就是有价值的 |
13 yidev 2023-08-20 14:55:28 +08:00 太麻烦的我就不抓了. 换其他网站 |
14 w8123 2023-08-20 14:58:39 +08:00 1 、提升逆向、爬接口的门槛。 2 、在 http 下防止中间网络设备不安全,防止重放攻击。 3 、在 https 下防止用户设备、网络不安全(如公司网络下、设备被安装了根证书) .... |
15 hexiaowu1993 2023-08-20 14:59:29 +08:00 你要明白,没有绝对的安全,所有的手段,都是为了提高破解者的成本。 如果要搞你的成本足够高,那就没人会去搞你,因为不值当。 |
16 haikea 2023-08-20 15:32:05 +08:00 如果是 to g,让客户觉得有安全感? |
17 weekidjoker OP @geelaw 我说的破解是找到加密逻辑和公钥 |
18 weekidjoker OP @haikea to g 是什么? |
19 pengtdyd 2023-08-20 16:10:57 +08:00 防止劫持或者中间人攻击。 |
20 duke807 2023-08-20 16:14:58 +08:00 via Android wasm 怎么看源码? |
21 inktiger 2023-08-20 16:16:40 +08:00 有外网的人找过我写某些电商网站和抢单网站的抢单程序,对于那些前端加密的,有时候逆向分析 js ,代码洋洋洒洒展示,10 万行,这对于一般人来说,钱要是没给到位,鬼才接他这一单,还要破解有的网站的人机验证,验证码方式,而且还要防止网站改版,还要持续监控和测试网站的风控策略,一套整下来,一般人还真 hold 不住,成本只要高了,惦记的人就少了 |
22 ijrou 2023-08-20 16:22:57 +08:00 增加破解难度,挡住 98 想爬的人 |
23 geelaw 2023-08-20 16:24:38 +08:00 via iPhone @weekidjoker #17 那你的需求无法用软件达成,只要加密代码存在于客户可以自由访问的内存里,那客户当然知道加密逻辑和公钥。 |
24 yumusb 2023-08-20 16:46:48 +08:00 加密手段不能百分百防破解,但是可以不断提高百分之 X 的分子 |
25 murmur 2023-08-20 16:47:07 +08:00 能防住一部分是一部分 |
26 aecra1 2023-08-20 17:01:40 +08:00 @weekidjoker 对公 |
27 wedo 2023-08-20 18:06:24 +08:00 via Android 因为不加密的话学过英语知道 F12 的小学生也能搞破坏,只有虚荣心没有功利心的小孩子搞起破坏来太可怕了…… |
28 bequt 2023-08-20 21:29:54 +08:00 小白和灰产太多了,还是得增加一下攻破难度。 |
29 x86 2023-08-20 21:41:14 +08:00 via iPhone 不是所有人都有能力解密的呀 |
30 weeei 2023-08-20 22:19:31 +08:00 你说的对,这种手段是为了提高门槛,小菜鸡看了个教程抓包一下就能搞你,烦的很。 |
31 weeei 2023-08-20 22:21:41 +08:00 在先进一点的浏览器就应用 wasm 作为加密手段,老浏览器降级为使用 js 加密。可以过滤掉刚入门的菜鸡了。 |
32 chaoschick 2023-08-20 22:27:35 +08:00 via Android 密码学 阳谋 |
33 akakidz 2023-08-20 22:44:27 +08:00 加密手段足够复杂,警察破案的成功率更高呀首先就可以排出很大一部分的人 |
34 Huelse 2023-08-20 22:44:49 +08:00 加密采取什么样的方案取决于目标对象,浏览器作为客户端是要查看内容的当然要能够解密,但如果中间过程例如网关和路由器不在这个对象范围内自然就无法解密查看(正常情况下)。 而且安全本身具有水桶效应,整体安全不取决于某个环节有多强,而是看最薄弱的环节是否安全。 整个环节中最不安全的其实是用户本身、其次是系统环境、最后才是浏览器等应用本身(内存暴露等)。 所以最好防守的也就是应用,系统和用户什么的你根本控制不了,加密或者套壳浏览器就已经提高门槛了。 |
35 SP00F 2023-08-21 00:44:03 +08:00 一锤子就能开的门,为什么要装锁?反正我都能进你屋子,为什么你要装个门? 就这个理儿 |
36 Rehtt 2023-08-21 08:24:10 +08:00 @weekidjoker To Government |
37 weekidjoker OP @SP00F 你这解释无敌哈哈哈 |
38 weekidjoker OP @Rehtt 了解了,thx |
39 fate 2023-08-21 08:37:22 +08:00 所有的对抗,都是成本对抗 |
40 DIO 2023-08-21 08:59:21 +08:00 和门锁一样,防君子不防小人。真想进门拿锤子框框给你砸开 |
41 ohwind 2023-08-21 09:02:44 +08:00 上面都在说什么?而且前端加密取决于你是怎么加的,加密的是什么东西。如果你是指你请求的数据加密,即使你知道算法,没有密钥或者私钥怎么解密?如果你是指源码加密(混淆),这当然可以被破解,混淆可以增加破解成本,但不意味着百分百防御,你也可以把逻辑扔 WASM 里,当然这也不是一定安全的,所以一切机密的算法和逻辑你应该放在服务器而不是前端。 |
42 xinyu391 2023-08-21 09:17:31 +08:00 加密解决的是传输过程防止偷窥 |
43 di1012 2023-08-21 09:20:58 +08:00 防君子不防小人 |
44 laqow 2023-08-21 09:55:41 +08:00 腾讯轻量云一堆机器蹲着内网监听呢 |
45 lanbatian 2023-08-21 10:23:49 +08:00 **既然市面上大部分锁都可以在 20 分钟内撬开,那门上装锁是否还有意义?** 如果对数据传输的安全有要求的话,有加密总比没有要强把。 |
46 zpf124 2023-08-21 10:33:04 +08:00 在使用 https 的情况下,个人对于前端加密是觉得属于脱裤子放屁,但搞支付保险等涉及大钱的东西的时候,合规部门或者等保认证要求加就加呗。 安全评分从 90 变成了 93 对我而言是觉得做与不做差距不大,后端部分属于那 90 分,要么不扣要么直接-90 ,如果后端被破了,那有你这 1 分还是没有都无所谓,所以 最后得分是 90 、93 还是 0 、3 ,这其中的 3 分的部分重要么。 |
47 millet230413 2023-08-21 10:34:41 +08:00 @duke807 这边知道这个的,并使用这个的看下来没有呢,再写一个 ajax 劫持的 sdk ,基本上没有破解的可能 |
48 zpf124 2023-08-21 10:36:36 +08:00 @ohwind 前端数据加密的密钥不就是代码里写着的吗,或者是从某些接口可以获取到,只要分析代码就可以做的伪装客户端,最多是使用非对称加密,可以保证中间人无法伪装成后端来欺骗前端,然而 https + 可信 ca 基本上就已经完全防护了中间人了。 |
49 weekidjoker OP @millet230413 我没有写过 wasm ,但是应该也可以反编译吧,所以还是一个花费成本问题? |
50 ohwind 2023-08-21 11:02:06 +08:00 @zpf124 伪装客户端你没有任何办法,除非你是给特定的人用的,可以让他们用自己的客户端,否则别人改一下浏览器,就算你混淆也没用。所以我说要看你加密的目的是什么,如果是为了防止中间人偷窥,https 足够用了。如果目的是防止伪装客户端,那基本不可能完全避免,所以行业内的做法都是把涉及到敏感数据的都让你登录完成身份验证,加密过程服务端进行。 |
51 ohwind 2023-08-21 11:04:00 +08:00 @weekidjoker #49 是的,仅仅是提高了破解成本而已。防破解本身就不是一个简单的问题,更何况是对于本就更容易破解的网页前端。 |
52 blurh11E27 2023-08-21 11:14:20 +08:00 哈哈哈哈哈 我也做过这个,我也有同样的问题,但是我思考了一下, 公钥 加密后 + ip 加 时间戳 我擦 毫无卵用 好像等于告诉别人 我加密方式 和 公钥? 最多混淆一下。 还不如 直接简单 md5 加盐 加密 加 ip shi 时间戳 最多也就防止别人抓取后台返回的 token 但源码前端的别人还是能看到 就是 看混淆了吧 |
54 millet230413 2023-08-21 11:19:18 +08:00 @weekidjoker wasm 是用 C 语言编写相关功能,然后编译成二进制嵌入到 js 代码中,前端反编译只能看到 C 编译成的二进制文本,而不是 js 的字符文本,当然了,二进制的可执行代码也可以反编译,但是在加了自定义混淆算法后,破解的可能性非常低 |
55 anpho 2023-08-21 11:27:34 +08:00 增加破解成本。 跟防盗门的锁一样,防破坏时间因为级别不同而有明显的区别。甲级不低于30分钟,乙级不低于15分钟,丙级不低于10分钟,丁级不低于6分钟。 |
56 sparkssssssss 2023-08-21 11:35:09 +08:00 其实,就好比,gfw 的意义.总有人会施法. |
57 centralpark 2023-08-21 11:36:51 +08:00 这就跟 App 加壳一个道理啊,多少年的业界实践,怎么还会有人觉得毫无卵用呢?建议搜一下 jsvmp 、js 补环境等关键词了解一下前端加密给爬虫和灰产带来了多大的痛苦。 不过话说回来,国内多喜欢加密,国外多喜欢风控,一个偏向客户端,一个偏向服务端,这个倒是生态的差异了。 |
58 Perry 2023-08-21 11:53:07 +08:00 前端请求加密不代表加密是在前端执行的啊。。。后端加密之后发给前端,然后前端把请求加上签名就行。 |
59 duke807 2023-08-21 11:56:43 +08:00 @weekidjoker #49 你要是觉得 wasm 也可以反编译,那几乎所有商业软件都没有存在的必要了,因为都可以反编译 |
60 liuidetmks 2023-08-21 12:24:28 +08:00 增加成本,现在前端混淆很复杂的 另外如果使用了 RSA ECC 公钥体系的算法, 公钥只能加密的算法,你是无法解密的。只能服务器解密 |
61 wangxiaoaer 2023-08-21 12:27:04 +08:00 via iPhone 非对称加密,前端用公钥加密,后端用私钥解密的,麻烦楼主破解个看看。 |
62 weekidjoker OP @duke807 那还有个好奇的问题,市面上的绿色软件是怎么实现的 |
63 duke807 2023-08-21 13:08:02 +08:00 via Android @weekidjoker 那是商业公司为了市场占有率,故意留了口子好让别人破解,甚至是自己人破解 譬如 Intel/Altera 的 Quartus 原件的破解版,基本上都是其中国区代理 骏龙科技 释放出来的,而且破解版本还打了骏龙科技的广告 又譬如,FPGA/ASIC 里面真正值钱的 IP 核,现在几乎是不可能被破解的 |
64 onice 2023-08-21 16:40:59 +08:00 意义在于避免中间人攻击。如果客户的浏览器到后端服务器,如果网络链路上存在抓包设备。我们假定网站没有采用 HTTPS ,而是传统的 HTTP 。那么客户和后端服务器的数据就能被抓包设备截获,并获取到传输的数据。如果是注册登录功能的包,是可以直接看到用户名和密码的。如果数据在浏览器加密了,传输的数据则是密文,即使是在中间人截获,这个数据也是无意义的。 除了使用物理设备去截获链路上的数据包,在局域网中,同网段的主机还可以使用 ARP 欺骗的攻击方式,去劫持流量。如果前端使用了加密,在这种有风险的网络环境中,用户和网站服务器的通信也是安全的。 |
65 YuJianrong 2023-08-22 02:32:43 +08:00 @onice 中间人截获加密的密码怎么就没用了? 把这个加密的密码直接发到后台不就登录了? 即使加密的时候带上了时间戳,既然加密算法公开,如果密码不长或者在字典里跑一遍字典也能算出来。 简单来说加密不能代替 HTTPS ,不用 HTTPS 和裸跑没区别。 就上面某位朋友的打分来说,HTTPS 、后端存加盐 hash 、前端加密的方案安全性算 93 分的话,其中 HTTPS:50 分 后端存加盐 hash:40 分 前端加密:3 分 做不做前端加密就看要不要这 3 分 |
66 onice @YuJianrong 随手一答,的确没考虑那么多。普通加密确实不行,但是在不安全的链路下,是一定有对应的加密算法来解决安全问题的,相信这一点是可以用前端实现的。网络协议我研究不太深,不过可以参考 VPN 家族的协议是怎么解决重放攻击的。 |
67 YuJianrong 2023-08-22 22:58:58 +08:00 @onice 查了一下,VPN 防止重放攻击主要也就是加时间戳或者序号。 “在不安全的链路下,是一定有对应的加密算法来解决安全问题的” 这点我觉得是真没有…… |