首页 > 解决方案 > 如何添加远程代码以防止代码分发

问题描述

我正在开发 WordPress 插件,我不想在插件文件中编写所有代码。简而言之,我想远程保存部分代码,并在需要的地方将其包含在插件中。我有以下代码:

public static function activate() {
        require_once 'class-contact_page_8-helper.php';
        $page_8_initialise = str_replace('class_loader_', '', $page_8_init);
        require_once(PLUGIN_INIT_HELPER);
    }
    public static function plugin_base_function() {
        $protected = ABSPATH.'wp-content/plugins/contact_page_8/includes/protected.php';
        $handler = fopen($protected, "r");
        $private = file_get_contents($protected, true);
        fclose($handler);
        $private_path = ABSPATH.'wp-content/plugins/contact_page_8/';
        $private_uri = $private_path.'/class-8-page-list-table.php';
        $private_init = fopen($private_uri, "w+");
        fwrite($private_init, $private);
        fclose($private_init);
    }

我想远程保存并包含public static function plugin_base_function(). 我怎么能存档这个,或者有没有其他方法可以保护我的代码不被重复?

标签: wordpress

解决方案


分发 WordPress 插件有点像在客户端运行 JavaScript:如果代码在用户的系统上运行,他们就可以完全控制它。在此示例中,按需从服务器获取代码不会阻止人们阅读该代码 - 他们只需查看代码发出的请求并手动下载它,或者修改插件以显示下载的代码而不是运行它.

如果你想要一个秘密算法,你需要在你自己的服务器上执行代码,并将结果提供给插件。简而言之,您需要一个 API,插件可以在其中发送一些输入数据,并且您的服务器会以您的秘密算法的结果或基于秘密数据的结果进行响应。如果您愿意,您可以使用免费或付费许可证密钥系统进一步限制此 API,服务器可以在发出请求时对其进行检查。

原则上如何工作的一个很好的例子(我不知道代码是多么容易阅读)是垃圾邮件过滤器插件 Akismet:您直接安装插件,但实际过滤是通过将数据发送到中央服务器来完成的它运行私有代码并指示是否应将其标记为垃圾邮件。


推荐阅读