![]() | 1 jmc891205 2017-11-06 15:12:57 +08:00 是怕公有云服务商拿走你的代码? |
2 Hstar 2017-11-06 15:16:02 +08:00 没有.exe |
3 yuhr123 2017-11-06 15:20:05 +08:00 ![]() 你真的认为云服务商会看的上你用 flask 框架写的代码? 如果答案是肯定的,那么恭喜你即将成为下一个独角兽。 如果答案是否定的,那么恭喜你,创建 virtualenv 环境放心的跑你的代码吧。 |
4 jko123 2017-11-06 15:21:35 +08:00 via Android 哈哈哈,你的代码那么牛逼的话,你还不自建机房? |
![]() | 6 wellsc 2017-11-06 15:38:42 +08:00 @wibile Cython 不支持 Python 的高级语法的(比如说装饰器,元类啥的),而且转换 Python 代码的模块引用也有问题的 |
7 Hellert 2017-11-06 15:40:55 +08:00 这种情况 Go 就体现出优势来了 |
![]() | 9 wibile 2017-11-06 16:11:27 +08:00 |
![]() | 10 Kilerd 2017-11-06 16:12:19 +08:00 wheel |
![]() | 11 est 2017-11-06 16:18:02 +08:00 ![]() 我跟你们说个邪门的 等 python 代码跑起来之后,把 .py 删掉即可。 当然,你们说可以 lsof 在 ln 还原,但是 python 可以远程加载 bytecode 并且执行呀。2333 |
![]() | 13 araraloren 2017-11-06 16:38:53 +08:00 这个时候 perl 的作用就体现出来了吧,我们自带加密 (滑稽 |
![]() | 14 fiht 2017-11-06 16:45:48 +08:00 杞人忧天 ========= 如果若干年之后有公有云厂商擅自翻用户数据被曝光了请开帖艾特我 |
![]() | 15 opengps 2017-11-06 16:49:11 +08:00 没必要担心这个,就算拿了,等他看懂了用起来,可能数据过时。过时的数据也没意义,公有云自己的业务够忙的,何必对你的代码感兴趣。 条件是,别选择太小规模的公有云 |
16 mooncakejs 2017-11-06 16:52:49 +08:00 ![]() 给你全套阿里巴巴代码,你能跑起来算你赢。 |
![]() | 17 shiny 2017-11-06 16:55:09 +08:00 要是真到了这地步,把数据拷出来再找人重新做一个不就成了。 |
![]() | 18 rogwan 2017-11-06 16:57:04 +08:00 via Android @mooncakejs 哈哈找个 py 库,没易读的 readme 和 demo 都懒得跑 |
![]() | 19 awing 2017-11-06 18:06:10 +08:00 大家都那么忙,谁有功夫研究你的代码 |
![]() | 20 gouchaoer 2017-11-06 18:09:20 +08:00 via Android 主要是防着甲方? |
![]() | 21 RubyJack 2017-11-06 18:23:27 +08:00 我觉得 linux 的权限控制就搞定了 |
22 hard2reg 2017-11-06 18:24:32 +08:00 ![]() V 站被害妄想症的人起码 90%了 |
23 dzxx36gyy 2017-11-06 18:26:42 +08:00 公有云一般不搞事吧,最多没事做扫你端口。各种机房托管和租用比较乐于干这种事 |
![]() | 24 lyragosa 2017-11-06 18:42:17 +08:00 你怎么不说机房网管直接去机房插个 U 盘把你的数据拷出来呢 |
![]() | 25 malusama 2017-11-06 18:44:10 +08:00 独角兽啊 |
![]() | 26 ranleng 2017-11-06 19:00:45 +08:00 难道重点不是在于 “有没有什么防止代码泄露的方法?” 而不是代码质量或者别人偷代码的问题。 |
28 patrickwhisper 2017-11-06 19:09:54 +08:00 先用 Docker 包装一层,然后在宿主机的 root 权限回收,关闭 Docker 登陆用户使用的权限。 |
![]() | 29 zjyExcelsior 2017-11-06 19:49:16 +08:00 cython 编译 |
![]() | 30 bfbd 2017-11-06 21:08:03 +08:00 |
![]() | 32 clino 2017-11-06 22:46:30 +08:00 @est 比如在函数里写 import 的,那还没执行过第一次的时候就没 import 过,如果这个模块是自己写的,那删掉不就 import 会失败嘛 |
![]() | 33 gouchaoer 2017-11-06 22:54:02 +08:00 ![]() LS 一群人的观点就有问题,LZ 是来问有没有防止源码泄漏的方案,一群人告诉 LZ 你不需要加密源码,这很奇怪吧 |
35 ngloom 2017-11-06 23:16:13 +08:00 compileall +1 |
![]() | 36 zoowii 2017-11-06 23:25:13 +08:00 你的数据库比你的代码重要多了 |
![]() | 37 Osk 2017-11-06 23:38:04 +08:00 via Android 对 compileall 编绎整个项目文件夹,加参数把 docstring 等全搞掉,再把.py 删掉,一样能跑,我自己几个小脚本这样玩过没问题。见过一些商用 python 也是一堆 pyc/pyo,入口的 py 文件只是一些引导代码,import pyc 里面的主函数并执行。注意的是编译后的文件和 python 版本相关的,而且实际上听说能反编译 |
![]() | 38 jiangbingo 2017-11-06 23:56:16 +08:00 编译成包文件。 |
![]() | 39 goodloop OP 多谢各位的方案,我这边主要是一些服务性的代码,不需要存数据库。所以相对来说代码安全性会比较重要一些。 1. 我原来使用过 pyinstaller 打包应用。但是最近新添加了一个依赖库,pyinstaller 的支持会有问题( so 的依赖问题), 所以来询问各位的答案。之前做过一些研究,看到基本上集中方案: 1. cython 2. 修改 python 的解释器,这个部署比较麻烦 3. pyinstaller 或者 py2exe 目前的情况下,看起来 cython 是我想用的可选方案。 2. 一直依赖做些算法和中间件的事情,没有部署过什么后台服务,所以一直对 python/java 的代码安全性方面比较好奇,所以有此一问。 |
![]() | 40 fyyz 2017-11-07 03:54:48 +08:00 找实习生重构代码 |
![]() | 41 enrolls 2017-11-07 04:10:12 +08:00 这 2 点应该会有帮助。 1. 搜:阴阳师:一个非酋的逆向旅程 2. 搜:python3-cookbook load_modules_from_remote_machine_by_hooks |
![]() | 43 Cooky 2017-11-07 07:51:26 +08:00 via Android 居然没人提 nuitka ? |
44 flyshu 2017-11-07 08:13:52 +08:00 感觉翻代码还不如翻数据库来得方便快捷 |
46 firefox12 2017-11-07 08:38:11 +08:00 via iPhone 阿里爸爸直接删掉用户可执行程序的事情才过去多久啊? |
![]() | 47 ctro15547 2017-11-07 08:46:39 +08:00 如果只是不想被别人看到*.pyc 咯。或者先混淆一下。只要不是什么惊天的功能,谁管你写的是啥。。 |
49 feng1234 2017-11-07 09:48:26 +08:00 如果是那种金融交易策略类的程序,还是很有保护的必要,因为这个是公司核心 |
![]() | 50 Fen2g 2017-11-07 09:55:35 +08:00 |
![]() | 52 sagaxu 2017-11-07 10:11:17 +08:00 修改解释器,在 pyc 文件中有规律的插入一些错误的 opcode,让标准解释器解释不了,标准反编译器工具也逆向不了。如果你的项目真的很值钱,恐怕用汇编写也没用,照样有人能破解,就看值不值得破。 |
![]() | 53 recall704 2017-11-07 10:31:14 +08:00 不怕,我写的代码过几天我自己都看不懂了。 ^~^ |
![]() | 54 goodryb 2017-11-07 12:45:42 +08:00 那你就用自己的服务器部署,对外提供 API 接口就好了 |
55 Wicked 2017-11-07 21:41:45 +08:00 via iPhone 你自己编译一个虚拟机,bytecode 改一下,编译成 pyc 执行,还可以写个包管理系统把 pyc 打包进去,方法很多的。但真想要破解还是可以反编译出来的 |
56 ttycode 2017-11-08 08:00:49 +08:00 via iPhone docker 部署,然后增加自毁脚本,关闭登陆。 |
![]() | 57 hareandlion 2017-11-08 08:18:53 +08:00 via iPhone @est 没有直接或间接被 import 过的 module,还是不会被加载到内存的吧? |
![]() | 58 est 2017-11-08 09:48:28 +08:00 @hareandlion 延迟删文件嘛。 |
![]() | 59 goodloop OP @ttycode 自毁是指删除 docker 的镜像和 container 么?关闭登录是指关闭登录 host 还是 docker container ? |
![]() | 60 clino 2017-11-08 21:22:47 +08:00 ![]() 刚看到一个贴,google: "[CPyUG] 如何导入和运行加密的 Python 脚本" |
![]() | 61 cs371332219 2017-11-11 13:12:06 +08:00 cxFreeze 和 pyInstaller 可以把你的项目打包成二进制文件。 |