一般 Python 服务部署在公有云服务器上,如何做代码保护?

2017-11-06 15:08:33 +08:00
 goodloop
如果想部署一个 flask 的应用。是直接上项目代码,在 virtualenv 里执行?有没有什么防止代码泄露的方法?
11149 次点击
所在节点    Python
61 条回复
RubyJack
2017-11-06 18:23:27 +08:00
我觉得 linux 的权限控制就搞定了
hard2reg
2017-11-06 18:24:32 +08:00
V 站被害妄想症的人起码 90%了
dzxx36gyy
2017-11-06 18:26:42 +08:00
公有云一般不搞事吧,最多没事做扫你端口。各种机房托管和租用比较乐于干这种事
lyragosa
2017-11-06 18:42:17 +08:00
你怎么不说机房网管直接去机房插个 U 盘把你的数据拷出来呢
malusama
2017-11-06 18:44:10 +08:00
独角兽啊
ranleng
2017-11-06 19:00:45 +08:00
难道重点不是在于 “有没有什么防止代码泄露的方法?”
而不是代码质量或者别人偷代码的问题。
clino
2017-11-06 19:04:54 +08:00
@est 万一有些延迟 import 的呢
patrickwhisper
2017-11-06 19:09:54 +08:00
先用 Docker 包装一层,然后在宿主机的 root 权限回收,关闭 Docker 登陆用户使用的权限。
zjyExcelsior
2017-11-06 19:49:16 +08:00
cython 编译
bfbd
2017-11-06 21:08:03 +08:00
可以编译成 pyc。
python3 -O -m compileall demo

https://my.oschina.net/bfbd/blog/864310
est
2017-11-06 21:17:41 +08:00
@clino 你来个例子我看看?
clino
2017-11-06 22:46:30 +08:00
@est 比如在函数里写 import 的,那还没执行过第一次的时候就没 import 过,如果这个模块是自己写的,那删掉不就 import 会失败嘛
gouchaoer
2017-11-06 22:54:02 +08:00
LS 一群人的观点就有问题,LZ 是来问有没有防止源码泄漏的方案,一群人告诉 LZ 你不需要加密源码,这很奇怪吧
crab
2017-11-06 23:00:36 +08:00
@gouchaoer +1。被 1 楼带歪了!
ngloom
2017-11-06 23:16:13 +08:00
compileall +1
zoowii
2017-11-06 23:25:13 +08:00
你的数据库比你的代码重要多了
Osk
2017-11-06 23:38:04 +08:00
对 compileall 编绎整个项目文件夹,加参数把 docstring 等全搞掉,再把.py 删掉,一样能跑,我自己几个小脚本这样玩过没问题。见过一些商用 python 也是一堆 pyc/pyo,入口的 py 文件只是一些引导代码,import pyc 里面的主函数并执行。注意的是编译后的文件和 python 版本相关的,而且实际上听说能反编译
jiangbingo
2017-11-06 23:56:16 +08:00
编译成包文件。
goodloop
2017-11-07 00:04:43 +08:00
多谢各位的方案,我这边主要是一些服务性的代码,不需要存数据库。所以相对来说代码安全性会比较重要一些。

1. 我原来使用过 pyinstaller 打包应用。但是最近新添加了一个依赖库,pyinstaller 的支持会有问题( so 的依赖问题),
所以来询问各位的答案。之前做过一些研究,看到基本上集中方案:
1. cython
2. 修改 python 的解释器,这个部署比较麻烦
3. pyinstaller 或者 py2exe

目前的情况下,看起来 cython 是我想用的可选方案。

2. 一直依赖做些算法和中间件的事情,没有部署过什么后台服务,所以一直对 python/java 的代码安全性方面比较好奇,所以有此一问。
fyyz
2017-11-07 03:54:48 +08:00
找实习生重构代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/403957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX