真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何保護php代碼安全

這篇文章將為大家詳細(xì)講解有關(guān)如何保護php代碼安全,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)致力于網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

screw plus是一個開源的php擴展,作用是對php文件進行加密,網(wǎng)絡(luò)上提供php加密的服務(wù)很多,但大多都只是混淆級別的加密,被人拿到加密文件問只要有足夠耐心就能破解,與之不同的是,screw plus采用擴展來加解密,而且是全球金融業(yè)流行的高強度AES256加密,除非破解了服務(wù)器,否則黑客拿到了加密文件也只是一堆亂碼。

同一個加密級別的有ioncube和官方的zend guard,但這兩款都是收費的,一年至少數(shù)千元的費用并不值得普通開發(fā)者去嘗試,而使用screw plus,你不需要多花一分錢。

下面以LNMP一鍵安裝環(huán)境為例演示下screw plus的配置

首先克隆一份代碼到服務(wù)器

git clone https://git.oschina.net/splot/php-screw-plus.git

進入項目目錄,然后執(zhí)行php的phpize文件,phpize是官方提供的可執(zhí)行文件用于動態(tài)生成擴展開發(fā)環(huán)境,一般在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

執(zhí)行成功后可以看到當(dāng)前的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 "..." ,把里面的值改為一個足夠復(fù)雜的key,最好16位以上,比如:9mqss6q7WsBpTMOZ

vi php_screw_plus.h

修改完畢之后,直接開始編譯,執(zhí)行make命令,如果最后顯示Build complete.說明編譯成功,擴展在modules里面,如果報錯請根據(jù)提示進行修復(fù),然后make clean之后重新編譯。

make

...

Build complete.

上面我們編譯的是解密程序,而加密程序也需要我們手動編譯一下,進入tools目錄執(zhí)行make命令即可。如果沒有報錯,則擴展就全部編譯完成了。

cd tools/

make

然后需要把擴展的路徑加入到php.ini中,你可以把modules/php_screw_plus.so復(fù)制到php擴展目錄也可以直接在ini中加入絕對路徑,我一般傾向于絕對路徑這樣修改編譯了擴展也不需要重新復(fù)制過去。

vi php/etc/php.ini

加入絕對路徑例如

extension=/home/php_screw_plus-1.0/modules/php_screw_plus.so

然后重啟php服務(wù) 這時可以放個php文件輸出phpinfo信息,如果看到以下提示說明擴展生效了。

如何保護php代碼安全

下面還有最后一步,加密程序。

在擴展的tools目錄,執(zhí)行./screw [路徑],[路徑]可以是單個文件也可以是文件夾,然后就可以實現(xiàn)加密了。

如何保護php代碼安全

加密完成后查看源碼,可以發(fā)現(xiàn)除了開頭的幾個英文字符外,其余的都成了亂碼。

如何保護php代碼安全

但是打開網(wǎng)站,php運行正常,如同沒有加密一樣。經(jīng)過測試,解密速度大約為100M每秒,對php自身的性能損失非常小,一般不到20毫秒。

screw plus還有個功能,可阻止執(zhí)行未經(jīng)許可的php文件,這樣黑客就算上傳了代碼也然并卵。

同樣在php_screw_plus.h里修改,把STRICT_MODE后面的值改為1,然后make clean && make重新編譯并重啟php,然后打開之前加過密的網(wǎng)站,執(zhí)行正常,但是我們隨意上傳個明文的php文件,結(jié)果是一片空白。

原因是未加密的php文件頭部不包含識別key,擴展會返回空內(nèi)容,就算黑客獲取了key并加入也沒用,內(nèi)容會被解密成亂碼仍然無法執(zhí)行。經(jīng)過screw plus的保護,即使網(wǎng)站整站被下載或被上傳了惡意代碼,也無法對網(wǎng)站造成損失。

關(guān)于“如何保護php代碼安全”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


分享文章:如何保護php代碼安全
地址分享:http://weahome.cn/article/jcpphe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部