高级php cms的安全方法

时间:2011-07-12 18:35:58

标签: php validation content-management-system

好的,我正在创建一个cms。将有免费版本和高级版本。显然,高级版本将具有模块,并且免费版本没有。有没有人知道我如何阻止我的高级版本在网络上共享?我已经研究过使用具有远程服务器验证的许可证密钥,以及加密和编码高级脚本。我不想使用Zend Guard或Ioncube,因为我不希望用户必须安装该软件才能使用cms。我也希望cms可以自定义,排除编码。任何人都有想法防止脚本被取消?如果它可能只是编码一个进行远程验证的页面...只是某些东西......它不一定是防弹的东西......但是可以防止新手破解者将其归零并释放它

1 个答案:

答案 0 :(得分:0)

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

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

在说这取决于您的目标市场时,如果您与Joomla之类的人正面对面!或者像WordPress,那么你的目标市场通常使用托管环境,所以没有大问题。 如果你想说一个内部网市场,这可能是一个小问题,但任何服务器管理员都可以轻松安装这个,而且他们也能理解为什么你把它放到位。请注意,Intranet市场有点困难,因为您需要指定端口设置来检查许可模块中的许可证。

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

许可&编码(建议): 使用许可功能对单个页面进行编码是一种解决方法,但如果其他源代码可用,您会发现绕过它很容易。

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

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

我希望这对您有帮助,对不起我不能推荐更好的解决方案。