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

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

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

9938 次点击
所在节点    程序员
98 条回复
importmeta
2024-08-27 14:25:32 +08:00
1.堡垒机。
2.Node 源码能打包混淆,不会直接运行源码。
Felldeadbird
2024-08-27 14:26:31 +08:00
官方有提供编译线上只给编译代码。没有就买商业加密软件。

所以我现在软件都转向 go 编写。build 后随便对方拿去破解。能逆向破解,那是他本事了。
mark2025
2024-08-27 14:34:39 +08:00
@xuanbg 值钱的是核心算法以及数据库(海量)数据。
Nem0
2024-08-27 15:03:45 +08:00
pyinstaller 也可以,会臃肿些
wenrouxiaozhu
2024-08-27 15:33:44 +08:00
@zeusho871 我这个呢 https://github.com/ZhaoQi99/pyencrypt-pye 感觉用起来还行..就是不知道容不容易被破解
julyclyde
2024-08-27 15:57:31 +08:00
@yb2313 你这是容器迷信
虽然这次你蒙对了,但是你的思路不对
raptor
2024-08-27 16:34:48 +08:00
真的,能登上服务器的人对屎山代码真不感兴趣,但数据库大概率要被拖……
sofm
2024-08-27 17:04:50 +08:00
楼主 问这个问题 有些本末倒置。问题是 该如何登录到 生成服务器?如果能登录,别人的目标是看你的代码吗?

本就不存在这样的问题,也就不会好的解决办法。
nomagick
2024-08-27 17:33:10 +08:00
恕我直言,公司的代码根本不用专门混淆

解释型语言拿去编译字节码也是敝帚自珍,主要是给老板提供心理安慰
nomagick
2024-08-27 17:35:00 +08:00
唯一值得保护的也就是配置文件,证书 API key 之类的

其他的,那不是针对谁。。。
wupher
2024-08-27 17:40:00 +08:00
真的,Github 上的开源代码我们都看不过来……

都有你服务器权限了,源码不是太看得上。想开个淘宝之类这不是光有个源代码就解决的。更别提他们复杂到吓人的架构了。开源商城就更多了。

配置文件有其它服务账号密码这个可能更感兴趣些。
skallz
2024-08-27 18:00:48 +08:00
@wupher 确实,私有部署给客户的话,光一个打包工具的默认混淆,绝大部分人就已经搞不定了,更别说通过这份混淆代码,梳理清楚业务架构,那就更恐怖了,99.99%的公司都没有这个资金干这个事。。。
IamUNICODE
2024-08-27 18:04:22 +08:00
业务代码没那么重要,无所谓吧,重要代码打个包得了
lneoi
2024-08-27 18:05:49 +08:00
deno 可以编译项目代码成可执行文件, 不知道反编译强度够不够
incubus
2024-08-27 18:06:10 +08:00
@yin1999 你猜爬虫这个岗位是干嘛的
luckyscript
2024-08-27 19:21:51 +08:00
zeusho871
2024-08-27 19:35:09 +08:00
@wenrouxiaozhu 基于 rsa 和 aes 的? aes 密钥从后台发的还是
murmur
2024-08-27 19:41:26 +08:00
没用的,要提交代码,我都进了你服务器了你数据全是我的了,我看代码干嘛
ClericPy
2024-08-27 20:09:21 +08:00
虽然编译了也能逆出来,不过能解决大部分场景了。稍微提几个

1. 印象中有三四个专门做代码混淆的,甚至混淆后的代码还能带有效期(发请求拉时间戳)
2. nuitka --module 打包成动态的 .so/.pyd ,不熟悉用法可以直接 Github 找我发的 nuitka simple gui 。只编译核心代码就行,不要编译依赖
3. 丢 serverless 之类的地方上面,不过也还是丢在服务器上做隔离,服务器不隔离也没用
assassing
2024-08-27 20:17:38 +08:00
不加密,严格做好数据和代码分离。服务器真无所谓的

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

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

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

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

© 2021 V2EX