- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在开发一些 (wordpress) 插件,我计划向任何想要使用它的人收取许可费。
因此我需要一种方法来确保此插件不会上传到任何人都可以免费下载和使用的服务器。
所以我在考虑使用 API key 。有效的 API key = 用户可以使用该插件。无效 = 插件不工作。
我看过这篇文章 PHP API Key Generator但我对此并不了解。
我也知道,因为它是 PHP,任何人都可以进入代码并禁用 API 检查(我只是猜测)
保护我的插件的最佳方式是什么? API key ?其他方法?有人有关于该主题的任何优秀教程的链接吗?
最佳答案
如果您的插件依赖于与您自己的服务器的交互,API key 是防止非付费用户使用它的绝佳方式。
但是,如果它不需要与您的服务器交互,那么任何具有一点 PHP 知识的人都可以修改您的插件以删除 API key 检查。
这里的一个主要问题是您的插件的许可。 WordPress 是 GPL,GPL 有一个条款要求“衍生作品”也必须在 GPL 下获得许可。 (这是一种轻描淡写的说法:事实上,整个 GPL 都是基于该条款的,没有它就不会真正起作用。)
关于插件是否可以被视为“衍生作品”存在很多争论。在我看来它不是,我认为试图强制它被视为一个是不道德的。然而,Automattic、核心 WordPress 开发人员和自由软件基金会(编写 GPL 的组织)声称 WordPress 插件在法律上必须使用 GPL,不得使用其他许可证。
到目前为止还没有法庭案件,因此也没有先例,但是围绕几个不使用 GPL 的主要 WordPress 插件存在相当大的敌意,而 Automattic 基本上威胁要采取法律行动,而插件开发人员说“请告我”。这不是一个很好的情况,我要说的是,无论这种情况的道德如何,事实是负面宣传通常会超过插件闭源的好处。
总结:您的插件基本上必须是 GPL,这意味着您必须提供未加密的源代码,这样任何人都可以修改您的插件以删除您添加的任何限制。但是你应该很容易说服你的大多数潜在客户想要从你这里购买插件而不是使用 fork 版本——你可以提供支持、升级等可能不适用于特定版本的好处“破解版”。
有几家公司在 GPL 下成功销售插件,并且没有任何保护(API key 等)。尽管理论上任何人都可以下载插件并将其上传到任何人都可以下载的公共(public)站点,但实际上没有人愿意使用一个非官方版本,因为它不会不一定针对新版本的 WordPress 进行更新。因此,即使没有任何形式的保护,销售插件似乎也是一种可行的商业模式。
当然,所有这一切都假设有人不只是 fork 您的插件并继续单独维护代码库。您对此无能为力 - 但不太可能发生。
就其值(value)而言,如果您想让决定重新分发您的插件的人生活艰难,您可能需要考虑以下几点:
关于php - 如何保护我的插件,以便只有付费用户才能使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987836/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!