Screw Plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,Screw Plus采用扩展来加解密,而且是全球金融业流行的高强度AES256加密,除非破解了服务器,否则黑客拿到了加密文件也只是一堆乱码。
同一个加密级别的有ioncube和官方的zend guard,但这两款都是收费的,一年至少数千元的费用并不值得普通开发者去尝试,而使用Screw Plus,你不需要多花一分钱。
下面以LNMP一键安装环境为例演示下Screw Plus的配置:
首先克隆一份代码到服务器
git clone https://gitee.com/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的保护,即使网站整站被下载或被上传了恶意代码,也无法对网站造成损失。
screw plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,screw plus采用扩展来加解密,而且是全球金融业流行的高强度AES256加密,除非破解了服务器,否则黑客拿到了加密文件也只是一堆乱码。 同一个加密级别的有ioncube和官方的zend guard,但这两款
运行环境 ubuntu 14.04 php 5.6 源码地址 https://github.com/del-xiong/screw-plus http://git.oschina.net/splot/php-screw-plus 操作步骤 详情请见:https://gitee.com/splot/php-screw-plus 以下仅对过程中出现的问题进行说明: 1、找不到 phpize 命令? s
php源代码的安全非常重要要。因此对源码的加密就变得非常重要。网络上很多的自定义加密算法,99%都是不可行的,只要是不使用任何扩展就可以使用,一般是用的eval函数,截获改函数的参数,就可以100%还原代码。非常不可取。更有一些滥竽充数的加密解密函数。执行期间需要解密,解密后明文执行。更是自欺欺人。 接下来步入正题: 介绍主角:screw plus screw plus是一个开源的php扩展,作用
原文:https://www.cnblogs.com/feixiablog/p/9870193.html 1.克隆一份代码 git clone https://git.oschina.net/splot/php-screw-plus.git 2.执行php的phpize文件 cd php-screw-plus /usr/local/php/bin/phpize (1)phpize是干嘛的? php
1.下载screw-plus安装包 git clone https://git.oschina.net/splot/php-screw-plus.git mv php-screw-plus /usr/local/src/ 2.php添加php-screw-plus模块,在编译之前可以在php_screw_plus.h文件指定CAKEY,最好选择一个足够复杂的16位的key值,提高加密复杂度 /
php_screw 是一个 php 源代码加密扩展。首先来看一下 php_screw 在liunx下是如何安装的 首先 去源完整下载 安装包,现在的最新版是 1.5,我们就用1.5 来做个实例 如果有最新版,可以在 http://sourceforge.net/projects/php-screw/files/php-screw/ 查看,下载地址也可以更新哦 开始下载 wget http://
注意:方案的数据库mapper层采用的是tk.mybatis maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> <dependency>
screw plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,screw plus采用扩展来加解密,而且是全球金融业流行的高强度 AES256加密,除非破解了服务器,否则黑客拿到了加密文件也只是一堆乱码。 1.克隆一份代码 git clone https://git.o
install_php_screw.sh 声明执行该脚本前需要将php_screw-1.5.tar.gz上传至/usr/local/下 #!/bin/sh #install php_screw cd /usr/local/ tar zxvf php_screw-1.5.tar.gz cd /usr/local/php_screw-1.5/ #vi /usr/local/php_screw-1.5/
In the last 36 hours, I've managed to screw my eclipse settings .. from being able to run my app, to now not even launch the emulator properly. I think it started when I modified the AVD's SD card siz
PHP 源码 Source Insight 相关资料 Extending and Embedding PHP PHP Internals Book 深入理解PHP内核 PHP扩展开发及内核应用 Laruence 鸟哥博客
本文向大家介绍PHP exif扩展方法开启详解,包括了PHP exif扩展方法开启详解的使用技巧和注意事项,需要的朋友参考一下 服务器配置说明: 1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号 2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll
我在phpinfo()中的“已解析的其他.ini文件”部分看不到mcryptphp_mcrypt'已经安装。我使用CentOs和nginx以及PHP5.3。3. 在/etc/php中。d/mcrypt。我写的ini扩展名=mcrypt。所以 我试图改变扩展路径在php.ini(ex扩展=/usr/lib64/php/模块/mcrypt.so),但它仍然不工作。
我正在windows server 2008 R2机器上工作。我已经用PHP5.4安装了Apache2.2。25在尝试为apache服务器启用ldap支持时,我发现服务器没有加载扩展。 我跑了php_info(),结果是这样的 配置文件(php.ini)路径 C:\Windows加载的配置文件:“C:\php\php.ini 扩展目录C:\php\ext 我已经改变了php。ini加载扩展,但它们
我有一个问题加载我的扩展在PHP在windows 7.我已经在我的windows上安装了php和IIS,当我检查phpinfo()页面时,我发现我的extension_dir是c:/php/exts。所以我将我的dll文件复制到那个目录中,并添加php.ini文件,然后我重启IIS并检查我的扩展名是否已加载: 但每次我运行这段代码时都会得到“否”。谢谢你的帮助。
本文向大家介绍PHP扩展开发教程(总结),包括了PHP扩展开发教程(总结)的使用技巧和注意事项,需要的朋友参考一下 PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工程师来保证系统的稳定运行。 1、线程安全宏定义 在TSRM/TSRM.h文件中有如下
本文向大家介绍PHP扩展开发入门教程,包括了PHP扩展开发入门教程的使用技巧和注意事项,需要的朋友参考一下 PHP扩展开发 我准备在此系列博文中总结我有关PHP扩展开发的学习和感悟,力图简单清晰地描述在Linux系统下开发一个PHP扩展应该具备的最基本知识。水平较低,难免有错误,望指出。 准备工作 首先要获取一份PHP源码(可以从Github上签出,或者到官网上下载最新的稳定版),然后编译之。为了
扩展说明 扩展点本身的加载容器,可从不同容器加载扩展点。 扩展接口 org.apache.dubbo.common.extension.ExtensionFactory 扩展配置 <dubbo:application compiler="jdk" /> 已知扩展 org.apache.dubbo.common.extension.factory.SpiExtensionFactory org.a