0 356 2021-05-30 10:00:01
收藏https://github.com/del-xiong/screw-plus
http://git.oschina.net/splot/php-screw-plus
screw plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,screw plus采用扩展来加解密,而且是全球金融业流行的高强度AES256加密,除非破解了服务器,否则黑客拿到了加密文件也只是一堆乱码。
同一个加密级别的有ioncube和官方的zend guard,但这两款都是收费的,一年至少数千元的费用并不值得普通开发者去尝试,而使用screw plus,你不需要多花一分钱。
下面以LNMP一键安装环境为例演示下screw plus的配置
首先克隆一份代码到服务器
git clone https://git.oschina.net/splot/php-screw-plus.git
进入项目目录,然后执行php的phpize文件,phpize是官方提供的可执行文件用于动态生成扩展开发环境,一般在php的bin目录下可以找到。lnmp的phpize在/usr/local/php/bin/phpize
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
执行成功后可以看到当前的php api版本,扩展api版本等。下一步就可以开始配置了。配置命令为 ./configure --with-php-config=[php-config], [php-config]一般也在php的bin目录下,写绝对路径就可以了。
./configure --with-php-config=/usr/local/php/bin/php-config
如果没报错,说明配置成功了,可以开始下一步编译了。
编译之前,我们可以修改加密的key,打开php_screw_plus.h可以看到开头就是 #define CAKEY "..." ,把里面的值改为一个足够复杂的key,最好16位以上,比如:9mqss6q7WsBpTMOZ
vi php_screw_plus.h
修改完毕之后,直接开始编译,执行make命令,如果最后显示Build complete.说明编译成功,扩展在modules里面,如果报错请根据提示进行修复,然后make clean之后重新编译。
make
...
Build complete.
上面我们编译的是解密程序,而加密程序也需要我们手动编译一下,进入tools目录执行make命令即可。如果没有报错,则扩展就全部编译完成了。
cd tools/
make
然后需要把扩展的路径加入到php.ini中,你可以把modules/php_screw_plus.so复制到php扩展目录也可以直接在ini中加入绝对路径,我一般倾向于绝对路径这样修改编译了扩展也不需要重新复制过去。
vi php/etc/php.ini
加入绝对路径例如
extension=/home/php_screw_plus-1.0/modules/php_screw_plus.so
然后重启php服务 这时可以放个php文件输出phpinfo信息,如果看到以下提示说明扩展生效了。
下面还有最后一步,加密程序。
在扩展的tools目录,执行./screw [路径],[路径]可以是单个文件也可以是文件夹,然后就可以实现加密了。
加密完成后查看源码,可以发现除了开头的几个英文字符外,其余的都成了乱码。
但是打开网站,php运行正常,如同没有加密一样。经过测试,解密速度大约为100M每秒,对php自身的性能损失非常小,一般不到20毫秒。
screw plus还有个功能,可阻止执行未经许可的php文件,这样黑客就算上传了代码也然并卵。
同样在php_screw_plus.h里修改,把STRICT_MODE后面的值改为1,然后make clean && make重新编译并重启php,然后打开之前加过密的网站,执行正常,但是我们随意上传个明文的php文件,结果是一片空白。
原因是未加密的php文件头部不包含识别key,扩展会返回空内容,就算黑客获取了key并加入也没用,内容会被解密成乱码仍然无法执行。经过screw plus的保护,即使网站整站被下载或被上传了恶意代码,也无法对网站造成损失。
本文地址:https://xzo.com.cn/develop/php/999.html
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。
PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。
在实际操作过程中,我们可能需要通过PHP正则提取字符串中的数字,并组成数组。...
在日常文章的发表过程中,由于需要引入一些外部链接达到更好的效果与体验。但...
任何站点但凡有点流量就会遇到这种情况:首页被人用问号传了参数,恰恰还被收录...
鸥哥最近在开发一个项目,出于对用户隐私的保护,数据一概不能存储到数据表,而是...
json是使用非常广泛的数据,通过使用json,我们还可以实现多种语言的联动。今天...
在网站的开发过程中,我们经常需要获取今天是星期几,并根据星期的不同而进行不...
在网站建成后的维护与优化阶段,我们会面临无用栏目/数据处理的问题。量小的...
PHP_EOL是一个相当好用的函数,可自动适配多种换行格式,在实际的应用中体验非...
本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...
采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...
帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...