试图保护小程序的接口
这里只能说是尝试。毕竟我的技术很好。在逆向工程高手面前,我不能绝对安全,但防止一些比我强的技能也绰绰有余。防逆向主要是保护接口和重要数据,并不能保护你的前端代码。由于代码需要为用户服务,所以不能完全隔离用户。
一、什么是反面(皮肤)
小程序运行时,会在用户系统中生成一个后缀为wxapkg的包。通过反编译这个包,我们可以得到小程序的前端代码,通过分析代码,我们可以得到它的后端接口和数据传输,这就是我们所说的小程序。目前已在反向小程序包中开发了各种软件系统。
目前官方还没有对这种反向行为采取行动,或者无法解决,导致部分行业新手可以通过软件获取任意小程序的前端代码。作为一个开发者,虽然我可以接别人的app小程序开发,但别人接我是很难的,所以我前天开发一个简单的一页小程序的时候app小程序开发,尽量防止界面泄露。
先说一下大家能想到的思路,分包不好,无非就是反了几个包,接口参数加密验证不好,大家看到前面可以模拟加密——结束代码,令牌不好,他们也可以模拟令牌。 , 有人觉得使用第三方框架开发生成代码比较混乱,这个问题是可以解决的,但是不行,我会帮别人改一下混淆的代码。虽然你看不懂生成的代码,但是反编译的代码会受到监管。排版,对于程序员来说,还是可以理解的。
所以我在新程序中使用了一个不合理的决定,使用了小程序的静默登录功能 app软件开发 ,也就是验证码。我这次开发的程序很小,每次打开程序只有两次数据传输,所以我在每次数据传输中添加了一个wx.login生成的代码。
这段代码很特别。每次生成都不一样,使用一次无效。原来是用来获取openid,用户和小程序的唯一标识,所以这段代码也绑定了你的appid。别人的小程序生成的代码也不能和你的通信。
通过这个,我们每次在后台接收数据时都会登录代码。如果能登录,那肯定是你小程序的正常请求,但是不能登录?要么抓包爆破你的界面,要么反编译你的小程序,用自带的appid测试二物载。这时候我们就直接返回准备好的错误数据了。
这种思路可以有效防止小程序被黑,但只适用于简单的小程序。如果你的小程序每次打开几十次(不知道为什么要分这么多次),这种方式会极大的消耗服务器性能。建议选择部分接口,只对重要接口进行代码校验。
上面的思路也可以有效的防止接口抓包爆破,因为没有人可以模拟代码。
APP反抓包思路
因为我最近在开发一个APP,APP里面没有代码这种东西,所以在网上研究了防止抓包的思路。
最简单的解决方法是判断用户是否使用代理,使用代理直接返回中指,但是这样会丢失一些正常用户,因为肯定有一些用户喜欢拿着梯子到处乱跑,所以我认为这不是最佳解决方案。
第二种是网上最常用的方法。参数加盐并通过MD5加密验证。也有双重MD5加密app小程序开发,但必须加盐。这很重要。
Salt(yan):在对一些表面数据进行MD5加密时,由于数据是开放的,易于模拟和加密,我们通常在加密后的数据中添加一个自定义字符串,称为salt。
前端在传输的参数中添加salt MD5,并复制到一个code参数中传输给后端。后端还在其他参数中添加了salt MD5。最终数据与代码对比,成功返回正确数据。 ,中指返回失败。这样,只要盐不泄漏,接口就可以保持安全。
请注意,我们都保证接口的安全 小程序开发制作 ,但不保证数据的安全。数据供用户查看。在安全方面,当然重要的数据是放在后端进行操作的,重要的数据不应该传到前端。
那你可能以为对方可以反方向获取你的salt,然后通过抓包模拟接口调用,你还是逃不掉。
没办法,我看这个人这么关心你的程序,你最好别再守着了,我们在一起吧……
好的,最近刚学了APP开发。以上只是我作为一个新学生的个人看法。如果老板有更好的想法,可以教我。感激不尽。
发现、改变
探知、求新
共享,感恩一路相伴
昱远品牌形象已完成全面升级
点击访问新官网