大佬们,新问题,如何限制 springboot 只能在指定的服务器上运行

2019-08-21 16:00:25 +08:00
 NoKey
开发了一个 springboot 服务
会从我这里的服务器上拉取一些带保密性质的文件放到 springboot 所在服务器上
现在有个问题比较麻烦
如何限制这个 springboot 服务,只能在指定的机器上运行
不能让人把服务拷贝出去一运行就可以得到文件

之前我想的办法是限制 mac 地址,但是在上一个帖子,受各位大佬们赐教,发现无法限制
虚拟机和 docker 都可以设置虚拟 mac

然后,我考虑是不是限制到达我这里的外网 ip,这个 ip 会不会改变?
请问一下,各位大佬,有没有比较好的办法呢,谢谢。
2946 次点击
所在节点    程序员
25 条回复
mzeht
2019-08-21 16:14:44 +08:00
ip 白名单加上密钥校验(如 rsa ) ,第三方需要有和你配对的密钥和报备 ip 来调你的服务
NoKey
2019-08-21 16:25:45 +08:00
@mzeht 谢谢回复。ip 这个问题,我就是想问一下,一般部署好的本地服务器或者云服务器,公网 ip 会变动不?经常变的话,就得经常修改配置,这个就很麻烦
whypool
2019-08-21 16:31:29 +08:00
远程鉴权了
NoKey
2019-08-21 16:35:09 +08:00
@whypool 能稍微详细的说一下么,谢谢
whypool
2019-08-21 16:37:04 +08:00
@NoKey 激活码
sujin190
2019-08-21 16:46:58 +08:00
在你的服务器上限制访问 IP 你服务器的来源应该是比较好的了,部署在云的话,谁没事换公网 IP 干嘛,所以一般不变,按照 TCP 协议来说,请求你服务器的 IP 伪造的话,连接就建立不成功了

激活码似乎也不是很靠谱,万一他直接把激活码激活文件数据什么的直接一起拷贝走了,还是一样没用吧

其实我有个问题,既然人家都能把程序拷贝走了自己运行,为啥不能拷贝已经下载下来的文件呢?这好像挺奇怪的,一帮来说,保密要求就只能在线查看才对吧,不过似乎也不能防止拍照。。所以你只要让人看让人下载,防不住吧
jitongxi
2019-08-21 16:51:03 +08:00
远程 ip,你的服务加上白名单,这是最稳妥的了,当然了,如果别人真的公网 ip 换了, 你这边也要相应操作。
这是无可避免的。
hyanwang
2019-08-21 17:10:53 +08:00
拿主板,cpu, 硬盘 sn, +网卡 mac,然后 md5 加密
lihongjie0209
2019-08-21 17:12:27 +08:00
这种东西当然是在你的服务器做认证最好了, 做在客户端麻烦更多
lff0305
2019-08-21 17:16:32 +08:00
类似强 license 控制么
用 cpuid, mac,硬盘 id 等等等计算一个 hash
服务器启动的时候判断这个 hash 是否匹配
zjsxwc
2019-08-21 17:30:20 +08:00
让这个服务 S 每天向你服务器 X 发一条随机消息并记录每天收到的第一条消息且返回 M,
然后如果 S 得到 M 与它发的不一致那么就让 S 崩溃,
因为只有别的 S 也在运行才会碰到这种情况
NoKey
2019-08-21 17:46:42 +08:00
@zjsxwc 加入我把服务拷贝出来,也运行起来,可能会出现正式服务崩溃,盗版服务运行的情况吧
zjsxwc
2019-08-21 17:53:22 +08:00
@NoKey #12 原文:“@zjsxwc 加入我把服务拷贝出来,也运行起来,可能会出现正式服务崩溃,盗版服务运行的情况吧”
回复:

那么盗版是怎么来的呢?
inwar
2019-08-21 18:18:35 +08:00
跟我现在需求差不多,我的做法是把部分 jar 放在服务器上,程序启动校验后再下载加载类
NoKey
2019-08-21 18:27:02 +08:00
@sujin190 有些东西无法防止的,如果能做到要求服务在指定服务器运行,能避免不少问题了,如果服务被拷贝出去随意运行的话,这个就不好说了
NoKey
2019-08-21 18:27:49 +08:00
@inwar 你这个程序启动校验,是指的什么
mmdsun
2019-08-21 18:36:18 +08:00
@hyanwang 云服务器这些可能会变。
mmdsun
2019-08-21 18:38:15 +08:00
推荐设置 jar 包加密,启动密码之类的。

Java -jar 启动项目需要输入密码。

但是也防不住别人整个拷贝走,虚拟机克隆之类的。
NoKey
2019-08-21 18:44:23 +08:00
@zjsxwc 把服务拷贝,弄到别的地方运行
NoKey
2019-08-21 18:50:52 +08:00
@hyanwang 这个方法不错,就是存在一个问题,云服务器的这些硬件参数,会变不

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

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

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

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

© 2021 V2EX