正常插件授权SDK全部代码一般放在插件主文件里面,如果使用者(站长)把授权代码删除,绕过授权,岂不很是糟糕?
有没有更安全的防御措施?即便使用者删除插件主文件里的SDK全部代码也使用不了,甚至崩溃?
核心思路:让插件核心功能深度依赖 SDK,删掉授权代码 = 插件崩溃。有三种方案,复杂度递增:核心函数内调用 LicenseOS::check(),删 SDK 则函数报错 | |||
将关键功能(如菜单渲染)移入 SDK 文件内 | |||
核心配置从 LicenseOS 云端拉取,无授权则无菜单数据 |
推荐方案 A(改动最小,效果显著):
原理:不只在文件末尾做验证,而是把验证调用散布到插件核心函数内部。站长要绕过授权,就必须同时理解并修改多处代码。
比如:
菜单渲染函数 mbm_render_bottom_menu()里嵌入授权检查资产加载函数 mbm_enqueue_assets()里嵌入授权检查商品页底部菜单也嵌入
这样即使删掉文件末尾的 SDK 初始化代码,LicenseOS类不存在会导致require_once失败 → 整个插件 Fatal Error → WP 自动停用插件。
如果您有更好的方案请在下方留言。
夜雨聆风