像 js(node)、 Python 作为服务端部署到生产环境,怎么保证源码的安全性的?

2024-08-26 22:08:28 +08:00
 grayfox

最近在学 node ,写完以后部署到生产环境,如果不经过像 java 那样编译,那么只要有登陆到生产服务器的权限,就直接拿到源码吗?不太懂这块,主流做法是怎么做的?

9864 次点击
所在节点    程序员
98 条回复
yb2313
2024-08-26 22:12:25 +08:00
用容器加密怎么样
cookii
2024-08-26 22:14:15 +08:00
服务器都能让人随便登录吗?
hefish
2024-08-26 22:14:29 +08:00
这个。。。用一个罩子,把服务器罩起来,不让别人看到。
yin1999
2024-08-26 22:14:51 +08:00
js 就用 webpack 或者 esbuild 等工具来打包,打包完成以后代码是会被转译+压缩的(人类不可读)。
zsj1029334
2024-08-26 22:15:12 +08:00
22 支持编译独立二进制了,node
LuckyLauncher
2024-08-26 22:15:54 +08:00
生产服务器的权限都随便给你还在乎源码的安全性吗
xiaochun41
2024-08-26 22:16:41 +08:00
有一种比较好的实践是不直接把部署源代码的机器暴露在公网上的,一般最前面还有一层网关,网关到业务服务器走的是内网转发,这样会好一些。
0o0O0o0O0o
2024-08-26 22:21:23 +08:00
1. node 生产环境一样要打包混淆压缩,部署源码是错误的做法
2. node 编译产物和 java 编译产物在防止泄漏源码这件事上强度差不多
3. 有直接登录生产服务器权限的人想干什么都行,你可能需要的是堡垒机
darksword21
2024-08-26 23:02:00 +08:00
python 可以用 pyinstaller
Zwying
2024-08-27 00:19:16 +08:00
node:
1.打包成二进制,但是只能 require 。
2.混淆部分关键代码: https://obfuscator.io/
3.部分关键业务用 Go/Rust/C 等重写,编译成 Wasm ,再调用

python 研究的不多,pyinstaller 打包可能是个不错的方法
jianchang512
2024-08-27 00:26:59 +08:00
都能进服务器了,源码再怎么加密 混淆或者二进制打包还有意义吗?


这场景似乎只在预防一种人:可以给他服务器权限但不想让他看到或复制源码
puzzle9
2024-08-27 00:34:24 +08:00
啊 那 php 的源码部署岂不是哭晕在厕所
不过换个想法
流量比源码值钱多了
zeusho871
2024-08-27 01:06:49 +08:00
@darksword21 pyinstaller 保护不了源码 运行速度还慢
@grayfox 建议看看 nuitka 这个打包源码 我用 ida 看了下 字符串基本都加密了如果觉得打包慢可以封装部分模块配合 pystand( https://github.com/skywind3000/PyStand) 打包详情看知乎文章
https://www.zhihu.com/question/48776632/answer/2336654649
mooyo
2024-08-27 05:07:49 +08:00
你门都被别人 x 开了,你关心的居然是源代码?难道不是直接把你库脱了嘛
expy
2024-08-27 07:49:19 +08:00
服务器被登陆比代码泄漏严重几个数量级,屎山代码开源都没人看的。
R4rvZ6agNVWr56V0
2024-08-27 07:51:53 +08:00
你的业务代码这么值钱吗?
如果很值钱,可以考虑代码混淆、定制加密解释器,例如 pyarmor 。
反正,有成本的。
crackidz
2024-08-27 08:30:51 +08:00
Java 能直接反编译啊...
dream4ever
2024-08-27 08:39:36 +08:00
“只要有登陆到生产服务器的权限”,你家门都被人打开了,家里的东西再怎么遮盖,用处也不大了……
drwebco
2024-08-27 08:42:30 +08:00
用 python 就别想闭源了
ox180
2024-08-27 08:51:09 +08:00
可以购买加密软件

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

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

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

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

© 2021 V2EX