由于众所周知的原因,php不经过编译就能部署并使用,使得源码暴露的风险巨大。
商用加密产品有很多,如SourceGuardian,但对于一般开发者来说,成本太高让人望而却步。
今天在github上找到了一个基于php-screw升级版的开源php加密工具,使用起来很顺利,所以分享一下心得:
项目地址:https://github.com/del-xiong/screw-plus
- 下载项目到本地目录:
cd /www/server
git clone https://github.com/del-xiong/screw-plus.git
- 在screw-plus目录中执行/www/server/php/83/bin/中的phpize自动生成扩展所需文件(如果你的php里没有可以去官网下载)
cd screw-plus
phpize
# /www/server/php/83/bin/phpize
- 执行./configure --with-php-config=[php config path] 进行配置,[php config path]是你的php-config的绝对路径
./configure --with-php-config=/www/server/php/83/bin/php-config
- 修改php_screw_plus.h中的CAKEY,改为一个你认为安全的字符串
vim php_screw_plus.h
# esc输入:wq回车保存更改
- 执行make生成扩展 modules/php_screw_plus.so
make
- 把扩展路径加入php.ini中 重启php
vim /www/server/php/83/etc/php.ini
# 添加一行:extension=/www/server/screw-plus/modules/php_screw_plus.so
# esc输入:wq回车保存更改
- 进入tools文件夹 执行make
cd tools
make
- 执行./screw [目录或文件] ,后面带上你要加密的目录或文件即可自动开始加密
./screw /www/wwwroot/tp8_project/app/controller/Index.php
# 或者加密整个目录
./screw /www/wwwroot/tp8_project/app/controller
- 如果过程无错误,可以看到php文件已经被加密成二进制内容了,但并不影响web访问,只是看不到源码了。如果想查看源码,可以使用-d命令:
./screw /www/wwwroot/tp8_project/app/controller/Index.php -d
这样就解密php文件成可见源码了。是不是很简单?!
网友评论