判断网站开发公司交付的是否为“真源码”,核心在于验证你对代码是否拥有完整的控制权、编译权和迁移权。很多不良服务商交付的其实是“加密文件”、“SaaS子账号”或者“缺失核心库的残缺包”,导致你一旦停止续费,网站就彻底瘫痪。
你可以按照以下五个维度进行实操验证,只要其中任何一环卡住,就说明这不是真正的源码:
真正的源码必须包含前端页面、后端逻辑和数据库结构。拿到压缩包后,先解压看目录结构:
.php、.java、.py、.go 或 .cs 等文本格式。你可以用记事本或 VS Code 打开,能看到可读的代码逻辑(即使有注释混淆,也是文本)。.dll、.so、.class 文件,或者 PHP 项目中出现了 ioncube_loader 相关的加密文件。这代表核心逻辑被编译或加密了,你无法修改底层功能,必须依赖原厂的解密环境才能运行。config.php、database.yml、web.config 或 .env)。
这是鉴别真假源码的“金标准”。真源码必须能够脱离原公司的服务器,在你的电脑或任意第三方服务器上跑起来。
.sql 数据库文件。localhost。有些公司给的是真源码,但在代码里埋了“定时炸弹”或“授权锁”。
curl、file_get_contents、socket:查看是否有代码在偷偷向陌生的外部域名发送请求。base64_decode、eval、gzinflate:这些函数常被用来隐藏加密代码。如果核心文件里全是乱码且包裹在这些函数里,说明代码被混淆加密了,你拿到的不是纯净源码。domain、license、auth:检查是否有硬编码的域名判断逻辑。例如:if ($domain != 'www.official.com') { exit('未授权'); }。源码只是骨架,数据库才是灵魂。很多公司给源码很爽快,但数据库只给空表结构,不给初始数据或存储过程。
.sql 文件,搜索 CREATE PROCEDURE、TRIGGER、FUNCTION。如果网站功能复杂(如电商、会员系统),通常会有存储过程。如果 SQL 文件里只有 CREATE TABLE,说明业务逻辑可能写死在加密的后端代码里了。技术验证可能有疏漏,必须在合同条款上封死退路。不要只写“交付源码”,要这样写:
“乙方需向甲方交付网站的完整、未加密、可二次开发的源代码及数据库结构文件。
- 源码不包含任何域名绑定、IP限制、远程授权验证等逻辑锁。
- 甲方有权将源码部署至任意第三方服务器,乙方需提供无偿技术支持直至部署成功。
- 若因源码加密或授权限制导致甲方无法独立运维,乙方需在3日内提供解密版本,否则退还全部款项并赔偿甲方损失。”
为了让你更直观地识别,这里列出三种常见的“假源码”套路:
| 套路类型 | 表现形式 | 危害 | 识别口诀 |
|---|---|---|---|
| SaaS租赁版 | 给你一个后台账号,说“这就是源码”。实际上你只能改改文字图片,代码在他们服务器上。 | 停费即关停,数据带不走,无法做SEO深度优化。 | “不给我安装包,只给后台号,全是耍流氓。” |
| 核心加密版 | 给了你一堆 .php 文件,但核心文件夹(如 /core/ 或 /library/)里的文件打开是乱码,需要安装 ionCube 等加载器。 | 无法修复BUG,无法二开功能,被服务商绑架续费。 | “核心文件看不懂,全是乱码像天书,就是被加密。” |
| 域名绑定版 | 源码是真的,但代码里写了 if (域名 != 备案域名) { 网站关闭 };。 | 换个服务器或换域名网站就挂,迁移成本极高。 | “本地部署跑不通,一换域名就报错,肯定有暗锁。” |
总结建议:
在付尾款之前,务必执行“本地部署测试”。让对方的技术人员远程协助你在自己的电脑上把网站跑起来。只要能在你的环境下独立运行,且没有报错,这才是真正属于你自己的源码。如果对方以“商业机密”、“防止盗版”为由拒绝提供未加密源码或拒绝协助本地部署,请直接终止合作。