首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全WordPress付费插件

安全WordPress付费插件
EN

WordPress Development用户
提问于 2010-08-11 20:31:48
回答 3查看 1.3K关注 0票数 5

我想要创建一个WordPress插件,但也希望确保插件只能在被激活后才能使用,而串行密钥应该是每个域的唯一。

假设这样做的最佳方式是什么:

  1. 我必须将实际的源代码提供给用户,并且不能有VideoPress类型的安全性--这只是来自插件服务器的实际内容的JavaScript包装。
  2. 我想确保一个新手到一般的PHP开发人员将不能轻松地绕过安全性。
EN

回答 3

WordPress Development用户

发布于 2010-08-13 14:58:14

选项1-处理系统

上的一些数据

我不会将插件的所有处理都放在您自己的服务器上,而是选择一两个重要的函数,并将它们保存在您的系统中。然后,每个使用插件的站点都需要一个API密钥,以便他们能够与您的服务器进行通信。

选项2-加密存储的数据并需要托管的解密密钥

另一种选择是基本的加密设置--这实际上是我已经玩了一段时间的系统,我只是还没有费心将它部署到任何地方。代码本身(保持对GPL的忠诚)都是纯文本,就像您所期望的那样。但是,所有存储的数据(默认值、插件设置等)在保存到数据库之前都是加密的。这里的诀窍是,远程系统上的插件没有解密密钥,为了解密数据,它必须将其API密钥发布到您的系统,然后系统用解密密钥进行响应。然后,这可以存储在一个短暂的(临时选项)前一段时间,然后被冲-这样你就不会有一个网站访问你的服务器每2秒在繁忙的交通。

但是,这种方法的缺点可能大于好处(这就是为什么我还没有在任何地方部署它)。首先,一个精明的程序员可以捕获解密密钥,然后他们不再需要您的服务器了。或者,他们只需清除所有的加密/解密挂钩,并以明文运行。这是开放源码对用户的好处,也是开发人员想要分发一个自由但受限的系统的不利因素。

另一个缺点是对服务器的依赖。在一个瞬间存储一个密钥可以减轻你服务器的一些负担.但是,如果你的站点被关闭一到两个小时,那么每个使用插件的站点都会被关闭一到两个小时,除非你计划了某种优雅的停用。而且,如果人们继续使用您的系统,这将意味着您必须无限期地保持所述服务器的正常运行。

选项3-限制“免费”版本

的特性

最后一个选项,也是我正在积极使用的一个选项,就是拆分插件的功能重置和功能。该系统的核心(UI、基本功能等)可以免费获得,无需注册。对于更高级的功能,用户必须注册他们的副本,获得一个激活密钥,然后将该键输入用户界面以完成该过程--插件,然后与您的服务器进行验证,并向系统下载额外的额外“附加”。

这里的缺点是,一旦下载,所有的代码现在都在用户的网站上,在GPL下,他们仍然可以重新分发完整的包。优点是它只依赖于您的系统一次,而不需要任何类型的长期下载/处理支持。

无论您如何决定继续前进,您要么会因为在服务器上维护某种外部API而受到影响,要么将系统的全部源代码提供给用户。如果你在你的系统上保留了一些功能,你几乎必须保证100%的正常运行时间,这是值得的。如果要提供完整的源代码,就没有办法(在GPL下)阻止其他人重新分发您的系统。

票数 4
EN

WordPress Development用户

发布于 2010-09-05 10:14:53

您不能将源代码隐藏在WordPress用户面前,也不允许您限制插件的重新分布,因为这涉及到许可问题。

您正在用您的插件创建一个WordPress派生程序,您的用户有权获取它的来源并自由地重新发布它(参见自由软件的四种自由)。

假设WordPress是根据GPLv2授权的,并且您有非美国客户,那么您应该处理在您的(“受保护”的)产品中可能存在的GPL违反行为的影响。

您正在尝试为您的用户实现供应商锁定。

票数 3
EN

WordPress Development用户

发布于 2010-08-11 22:12:06

只有在自己的服务器上运行插件的主要功能,才能拥有任何半途而废的程序员无法破解的安全许可证,比如Akismet。用户必须向包含其许可证密钥的服务器发送请求。如果键签出,请在端执行源代码并将结果发回。

票数 2
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/56

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档