AdvancedLicense 是一款高效的许可证管理系统,它提供易于使用的 Web 界面来创建、管理和删除许可证,同时拥有一个简单而强大的 API,可轻松将系统集成到您的插件中。这意味着您可以让用户先测试插件再付款,而无需担心收不到款项。信任,但也要验证!请注意,您不得将受许可证保护的插件上传至 Spigot。
核心特性
- 通过 Web 面板轻松管理许可证
- 采用加密密钥认证保护系统
- 可快速将 API 集成到您的插件中
- 支持限制每个许可证的 IP 数量
- Web 面板采用加密登录系统
- 许可证可与特定插件绑定
- 支持设置许可证过期日期
- 自动提供问题解决方案建议
- 提供许可证的实时统计数据
- 更多功能,请查看在线预览
关于安全性的讨论
所有这些功能听起来都很棒,但 AdvancedLicense 到底有多安全?在其设计范围内,AdvancedLicense 是非常安全的。这意味着我们已经尽可能地将可控部分设计得足够安全。
但事实是,Java 可执行文件可以被反编译,尤其是包含许可证密钥和 URL 的字符串,在大多数情况下很容易被检测、移除或篡改。因此,如果攻击者拥有足够的技术知识并成功绕过您的代码混淆(至少找到了密钥),那么 AdvancedLicense 将无法保护您。
话虽如此,在许多场景下,AdvancedLicense 能够抵御来自外部的各种攻击,例如拦截并伪造许可证服务器的请求。最后需要说明的是,AdvancedLicense 从未旨在提供一个 100% 防欺诈的解决方案,它只是大大降低了这种可能性。实际上,大多数购买插件的用户并不具备绕过此系统的技术知识。
如果您有任何提高安全性的想法,或对此系统有进一步的疑问/担忧,请加入我们的 Discord。
使用要求
要使用 AdvancedLicense,您需要准备:
- 一台支持 PHP 的 Web 服务器
- 一台 MySQL 服务器
您可以在以下地址查看 Web 面板的完整在线演示:
http://indev.skamps.eu/license
- 用户名:
spigot_access - 密码:
spigot123
安装与设置指南
设置过程非常简单,大部分步骤由 AdvancedLicense 自动完成。
如何设置 Web 面板(需首先完成)
- 下载本资源文件。
- 将 “webpanel” 文件夹中的所有文件复制并粘贴到您的 Web 服务器上。
- 在
config.php文件中填写 MySQL 数据库信息和管理员登录凭据。 - 在浏览器中打开 Web 面板,并按照显示的步骤操作。
- 完成后,您就可以开始管理许可证了。
如何集成 API
- 将
AdvancedLicense.java文件粘贴到您的 Java 项目中。 - 在插件的
onEnable方法中,选择以下一种方式集成我们的 API。
集成方式示例
基础集成:
if(!new AdvancedLicense("YourLicense", "http://your.domain.com/License/verify.php", this).register()) return;进阶集成(控制台日志):
if(!new AdvancedLicense("YourLicense", "http://your.domain.com/License/verify.php", this).setConsoleLog(LogType.NONE).register()) return;LogType.NONE- 控制台无输出(隐蔽模式)LogType.LOW- 输出简要信息LogType.NORMAL- 输出结构良好的信息(默认)
更安全的集成(自定义安全密钥):
if(!new AdvancedLicense("YourLicense", "http://your.domain.com/License/verify.php", this).setSecurityKey("YOUR_OWN_SECURITY_KEY").register()) return;请注意:如果您设置了自定义安全密钥,必须在 Web 服务器上的 config.php 文件中填入相同的密钥。
调试模式:
if(!new AdvancedLicense("YourLicense", "http://your.domain.com/License/verify.php", this).debug().register()) return;调试模式将
- 显示请求的 URL。
- 在出现 “URL_ERROR” 时提供确切的错误信息。
面向高级开发者(手动验证):
ValidationType vt = new AdvancedLicense("YourLicense", "http://your.domain.com/License/verify.php", this).isValid();
if(vt == ???){
// 您的代码
}else if(vt == ??? || vt == ???){
// 您的代码
} else{
// 您的代码
}可用的验证类型 (ValidationType) 包括:
WRONG_RESPONSE, PAGE_ERROR, URL_ERROR, KEY_OUTDATED, KEY_NOT_FOUND, NOT_VALID_IP, INVALID_PLUGIN, VALID
配置文件说明
以下是 config.php 文件的核心配置部分说明:
// MySQL 数据库设置
define("DB_NAME", "Licenses");
define("HOST", "localhost");
define("USERNAME", "YOUR-USERNAME");
define("PASSWORD", "YOUR-PASSWORD");
// 安全密钥设置 (CKAP_KEY)
// 此密钥用于加密密钥认证保护,长度必须为 36 位(仅包含 1 和 0)
// 如果在 Java 端使用了 .setSecurityKey(),此处必须更改为相同的密钥
define("CKAP_KEY", "YecoF0I6M05thxLeokoHuW8iUhTdIUInjkfF");
// 统计功能
// 设置为 true 以记录和显示许可证请求数据
define("STATS", true);
// 管理员账户(初始登录凭据)
define("ADMIN_USERNAME", "");
define("ADMIN_PASSWORD", "");
// 如需添加更多账户,请直接向 MySQL 服务器的 ‘users‘ 表中插入数据
// 搜索引擎索引控制
define("NOINDEX", true); // 阻止搜索引擎索引
define("NOFOLLOW", false); // 阻止搜索引擎跟踪链接其他信息与支持
- 欢迎查看我们开发的免费发票工具:Liberty Invoice - Free Invoicing Tool。
- 如果您发现任何错误或有任何问题,请随时联系我们。
- 我们仅通过 Discord 提供官方支持:https://discord.gg/ycDG6rS
- 如果您喜欢 AdvancedLicense,请给我们 5/5 的评分以示支持。
- 感谢 @FusionStyleFX 提出这个插件的创意。
请注意: 如果您发现任何错误,请在给出差评前尝试联系我们。我们也提供了英文安装和使用教程,可供参考。