- 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/
我在互联网上搜索了很多小时,但没有找到满意的结果,所以 -VSTO Addin 和 COM Addin(我们作为类库项目制作并使用 Excel 对象)之间有什么区别?VSTO 项目是否有任何限制,例如
我在互联网上搜索了很多小时,但没有找到满意的结果,所以 -VSTO Addin 和 COM Addin(我们作为类库项目制作并使用 Excel 对象)之间有什么区别?VSTO 项目是否有任何限制,例如
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在寻找有关如何构建可扩展 WCF 服务器(具有动态加载的服务)的建议,最好使用 System.Addins 或 MEF。 服务器应托管实现最小“插件”API(StartService/StopSe
有没有一种方法可以使用加载浏览器扩展/插件/插件的 headless 浏览器(即 PhantomJS、Selenium)来运行自动测试? 更具体地说,我想模拟广告拦截器(如 Ghostery、ad-b
我是 gradle 的新手,我使用 artifactory 作为我的 repo 服务器。我在网上查看了如何将我的项目发布到我的 repo 服务器,发现我可以使用 maven-publish 或使用 a
我想禁用某些状态的点击/事件,并仅使少数状态可点击。我通读了http://newsignature.github.io/us-map/处的文档,并且找不到与此问题相关的任何内容。 最佳答案 http:
据我了解,在Intellij中使用idea插件打开Maven构建的项目并不是最好的方法,即调用: mvn idea:idea 但是直接打开pom文件(Intellij有默认的Maven插件);同样的事
使用Artifactory plugin对于 Jenkins pipeline 来说是一种幸福,只要遵循文档就可以了。但后来我介绍了Maven Flatten plugin解析父模块和子模块 mvn
我已经安装了Elasticsearch版本1.7.1。一切正常。我也安装了 JDBC 驱动程序。检查下面我的插件文件夹 目录E:\Xampp\htdocs\my-elastic\elasticsear
在我使用 webpack common chunks 插件创建包含第三方库(如 angular、react、lodash 等)的 vendor 包之前,但后来我知道了 webpack dll
我们正在尝试使用(Jenkins、sonar、eclipse ...)安装 CI 平台。 为了让每个开发人员都可以在提交之前对他的代码进行分析,我想知道两种选择: 使用 Sonar 插件运行本地分析。
我知道这是一个比较特殊的问题。尽管如此,也许有些人知道这一点: 我想在 Eclipse 中使用 Maven 编译 Hector=> 分支:0.7.0 和标签:hector-0.7.0-29(https
我卡住了。我一直在尝试寻找或自己创建一个简单的准系统示例,说明如何为 VS 2010 Express 创建 Outlook 插件。我知道这在 VS 2010 Pro 中更简单,但是,在快速版本中真的不
我有以下排除过滤器来忽略所有 R 文件类: findbugs-exclude-filter.xml 当我将它用于 FindBugs-IDEA 插件时,它可以
我刚开始玩 CakePHP,我发现了 Wildflower CMS .我喜欢这个想法,并打算开始修补它。不过,我有一个问题。 在自述文件中,我发现了以下内容:“Wildflower 不是也不会是 Ca
虽然现在大部分情况都是使用n-api来编写插件,但是底层毕竟是v8(和libuv),使用v8编写简单的插件,同时熟悉v8的使用。 本文介绍在写c++插件时,简单又常用的写法,其实本质上,写插件
本篇是 Python 系列教程第 3 篇,更多内容敬请访问我的 Python 合集 Visual Studio Code的安装非常简单,就不放这里增加文章篇幅了。 相比PyCharm,V
Maven – 插件 什么是 Maven 插件? Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来: 创建 jar 文件 创建 war
我正在编写一个插件来添加带有标签 [deposit_page] 的页面;该标记应替换为一些 PHP 代码。 这就是我所拥有的,但它不起作用。有什么我遗漏或做错了什么吗? function deposi
我是一名优秀的程序员,十分优秀!