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

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

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

然后,我考虑是不是限制到达我这里的外网 ip,这个 ip 会不会改变?
请问一下,各位大佬,有没有比较好的办法呢,谢谢。
3121 次点击
所在节点    程序员
25 条回复
hakono
2019-08-21 18:59:01 +08:00
楼主这个需求实际上和软件,游戏防盗版系统的需求没区别

查查看防盗版怎么做不就行了
搞简单点就和服务器的硬件 id 绑定了,比如主板 cpu 内存 id
然后程序内部硬件白名单 id 用 aes 加密下,解密密匙怎么放都随便,反正别一个文本文件塞那就行
然后楼主觉得这么做还是不安全,就搞了个在线认证,动态从服务器拿加密过的 key 之类的,然后发现还是不行,被人反向下可执行程序照样破解,然后楼主就写了个动态加载加密过的程序本体入内存,然后执行程序的启动程序,楼主就这么把别人造了十几年的加壳程序轮子又造了一个,最后发现我做到极致了也就 D 加密那水准,依旧不安全


是的 现实就是这么残酷 ,楼主发现无论怎么努力防盗版系统都是有极限的,所以最后楼主决定:我不写防盗版啦!
最后,楼主把程序写成了在线服务 让用户用账户密码来下数据,做起了一个网络开发工程师
yiyi11
2019-08-22 09:26:28 +08:00
@mmdsun 同意。其实跟配置文件的敏感信息(数据库账号密码加密)需求类似。在启动的时候把解密的秘钥输进去,别人无法直接运行这个程序。
NoKey
2019-08-22 09:44:04 +08:00
@hakono 😓
LeeSeoung
2019-08-22 10:15:55 +08:00
只能服务端要求,不单单是 IP 也可以加上其他一些硬件信息然后 hash,服务端验证这个 hash 值,客户端你做再多限制都可以逆向出来,修改从而绕过限制。
hyanwang
2019-10-13 23:28:56 +08:00
@mmdsun 变是可以的,一旦变换,就需要重新验证, 应该在 md5 加密的时候加入该产品 license,从而保证只有一台及其使用。

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

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

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

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

© 2021 V2EX