- List item
一般人会反编译么?难么?
不难 玩明白的人 3-5 分钟反编译一个小程序。
反编译会得到全部代码么?
会得到前端的全部代码,wxml 、wxss、 js,包括一些代码包里面的静态图片。
其中 wxss 不管用什么框架开发 都会反编译下来 不会混淆 不会压缩。
但是代码是否是原生开发,js是否具有可读性,还得看小程序是用哪种框架开发的。
如果用uni-app、wepy开发的,那么反编译下来的js代码是混淆的,没有几年的js功底,你根本就看不懂。如果用原生开发,那恭喜你代码都是可读的。
反编译得到的代码能直接在开发者工具运行么?
80%的小程序都能完整运行起来。
反编译得到的代码,能否进行二次开发?
一般小程序都能进行二次开发。但是得看你js实力了 。初学者或干脆不懂小程序代码的人 就别二开了。容易把自己搞成精神分裂。
编译下来的能看到接口地址么?能直接用它的接口么?
如果服务端是在自己服务器,那接口也会暴露出来,反编译者会直接获取到你的接口地址,如果你接口没有进行加密处理,你的接口也会被别人使用。
小程序云开发 也会暴露出接口么?
不会,云开发不会展示给对方接口。数据通过微信加密传送 不会暴露。
能阻止别人反编译么?
不能阻止。无论iOS或Android的原生APP也是很容易反编译的。客户端的程序想要实现代码保护是很困难的。你只能给反编译者增加代码阅读的难度,写点比较难得逻辑或无效的逻辑把反编译者搞蒙,让他失去看你代码的信心。
如何给反编译者增加js代码阅读的难度?
①微信开发者工具上传代码时候选择 右上角【详情】【本地设置】【上传时进行代码保护】【上传代码时自动压缩混淆】。
②使用uni-app 、wepy等小程序框架开发,尽量不适用原生开发。
如何阻止反编译的人访问我的接口呢?
①他们反编译你的代码之后一般都是在微信开发者工具上运行,要在开发者工具上直接调你的接口,小程序的Referer是不可以更改的,从开发者工具上发出的请求的Referer一般是这样:https://servicewechat.com/wx05ac2038cb1a1286/devtools/page-frame.html ;wx05ac2038cb1a1286是小程序的APPID ,只有在后端请求接口时候做拦截判断。当前appid是否是你的appid即可。不是你的appid你就给他来个提示。
但是这个referer 懂行的人是可以伪造的,Python、node都能伪造,难度比较高。如果你被伪造的referer访问了 那你的小程序产品也是挺成功的!!!
②利用cookie、session 验证、token验证、微信登录openid验证等、改产品流程不登录访问不了接口,类似于浏览器端 cookie验证,登录之后服务端生成cookie ,token,服务端在根据cookie、token是否真实/是否有效来判断是否是真实用户请求。
③完全阻止非法调用接口是不可能的,还要从IP,次数之类的来防范;通常需要做防护的产品,是需要进行IP访问频率和次数的限制的。
如何不让反编译者看到我的接口呢?
①如果你采用云开发调数据,那他就用不了你接口了。
②如果你用自己服务器域名开发接口,那根本隐藏不了接口地址,有很多抓包工具,都能获取到你的接口,比如charles 小茶壶抓包工具;再有就是查看小程序详情也可以看到你的接口域名。
我的代码被被人反编译了 并且上线了 我该怎么办 我怎么投诉?
①侵权投诉流程严格按照法律流程建立需提交充足的证据材料由法务团队来专业评估。
②小程序侵权投诉指引可参考:http://kf.qq.com/faq/170222yqAbqi170222faeErI.html
总结:
被编译的只有前端,后端在自己手中,他人拿去前端也没用。
api接口做各种建权 防止编译者访问。
wxss 布局代码没法做防护,直接就能扒下来,只能在js中做防护。
有技术有能力可以使用云开发 、uni-app、wepy会增加阅读代码难度。