我为我工作的公司开发了一个信息管理系统。
现在,我想做一种许可系统,以帮助防止任何人只是拿一份拷贝,并将其设置在自己的家庭服务器上,然后将其用于任何目的。
我知道最简单的方法可能是在系统的每个页面或类似的地方包含对存储在远程文件中的键的引用,但我认为通过一些努力可以很容易地解决这个问题。
保护我的作品的最好方法是什么?
发布于 2012-05-14 16:55:19
从安全的角度来看,普遍的共识是你不能保证它不会被窃取,所以你必须权衡你想让攻击者攻击的难度有多大。我们已经在Security Stack Exchange上讨论过这个问题。
看看那里的,以及那里的所有问题tagged drm。
发布于 2012-05-14 14:02:27
最好的方法是根据机器的硬件值生成密钥。因此,获取ram的数量、处理器类型、速度、mac地址、bios版本等。一旦有了所有这些值,就可以使用它们来生成哈希值。每个用户还应该为他们的购买拥有唯一的ID。当第一次使用该软件时,它应该将用户ID和散列发送到您的服务器。软件每次运行时(以及在运行时的不同时间),软件都应将这两个ID发送到服务器。如果散列与对应于用户ID的散列不匹配,则拒绝对软件的访问。如果用户改变了他们的硬件或者想要安装在不同的机器上,他们应该能够提交一个重置散列的请求。另外,请确保您使用SSL进行许可通信,如果可能,请混淆您的代码。如果要将脚本锁定到域,还可以将运行脚本的域名添加到用于哈希的数据中
发布于 2012-05-14 14:10:20
在PHP中很难做到这一点,因为源代码对所有人都是开放的,但你可以做一些类似的事情来修改索引来获取服务器的名称或IP,并在你的数据库中检查它,如果你允许它,过程返回ok,一切工作正常,否则你发送一个自毁命令到索引,索引将删除从它的目录开始的所有文件和文件夹,你可以找到一个命令here,你可以删除maxdepth参数来递归删除所有文件和文件夹。请记住,你的问题没有完美的解决方案,因为对方可以很容易地更改索引源代码。
https://stackoverflow.com/questions/10578075
复制相似问题