一个安全的方法为高级php cms


A secure method for premium php cms

好的,我正在创建一个cms。将有一个免费版本,和一个高级版本。显然,高级版本将有模块,这样的免费版本没有。有没有人有一个想法,我如何才能防止我的高级版本被共享在网络上?我研究了使用远程服务器验证的许可密钥,以及加密和编码高级脚本。我不想使用Zend Guard或Ioncube,因为我不希望用户必须安装这些软件才能使用cms。我还希望cms是可定制的,排除编码。谁有想法,以防止脚本被取消?如果可能的话,也许只是编码一个页面,做远程验证…只是一些……它不必是一个防弹的东西……但是有一些东西可以防止新手破解者将其取消并释放

就我个人而言,我尝试了一些技术来避免使用PHP编码器,但在商业环境中没有什么是真正有效的。

根据我的经验,我不会太担心Ioncube和Zend没有安装在服务器上,因为大多数托管环境很可能已经有了这两个,这是我发现的。因此,它减少了用户必须为单个应用程序安装它的问题。

这也取决于你的目标市场,如果你要与Joomla!或者WordPress,那么你的目标市场通常使用托管环境,所以没有大问题。然而,如果你要去一个内部网市场,这可能是一个小问题,但是任何一个有价值的服务器管理员都能够轻松地安装这个,他们也会理解你为什么要把它放在适当的位置。注意,内部网市场有点困难,因为您需要指定端口设置来检查许可模块中的许可。

旁注:由于您的产品将与源代码一起发布,您确实需要小心并注意您的知识产权(IP),这通常意味着在每页可读的页面上放置法律免责声明。此外,不要忘记尊重项目中可能使用的其他IP所有者脚本的需求。

许可,编码(建议):用许可功能编码一个页面是解决这个问题的一种方法,但如果源代码的其余部分可用,您会发现绕过它相当容易。

我要考虑的是编码一个具有许可功能的页面,但也编码您的登录验证,对每个受保护页面进行一半的身份验证检查,以及向数据库发布的一些基本功能。这样,如果他们试图用许可脚本删除您的编码页面,则没有登录或更新内容-而且他们将被踢出系统,因为只有一半的会话检查是有效的-我隐藏了一个嵌套到每个页面操作所需的另一个函数中的kill函数,这可能是一个菜单(这很好,因为您可以在注销时隐藏该函数)。它看起来只是注销函数的一部分,但实际上,如果不是所有变量都存在,它是一个销毁会话的函数。

在每个受保护页面(该函数应该被编码)上为身份验证检查选择值时,尝试使用看似随机变量和非描述性名称,然后对变量进行编码(我喜欢MD5哈希)。这是另一种方法,以提供更多的安全围绕"黑客"你的脚本。

我希望这对你有帮助,很抱歉我不能推荐更好的解决方案。