亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    用什么保護(hù)php代碼安全?screw plus可以!

    https://github.com/del-xiong/screw-plus

    http://git.oschina.net/splot/php-screw-plus

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

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

    下面以L(fǎng)NMP一鍵安裝環(huán)境為例演示下screw plus的配置

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

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

    進(jìn)入項(xiàng)目目錄,然后執(zhí)行php的phpize文件,phpize是官方提供的可執(zhí)行文件用于動(dòng)態(tài)生成擴(kuò)展開(kā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版本,擴(kuò)展api版本等。下一步就可以開(kāi)始配置了。配置命令為 ./configure –with-php-config=[php-config], [php-config]一般也在php的bin目錄下,寫(xiě)絕對(duì)路徑就可以了。

    ./configure –with-php-config=/usr/local/php/bin/php-config

    如果沒(méi)報(bào)錯(cuò),說(shuō)明配置成功了,可以開(kāi)始下一步編譯了。

    編譯之前,我們可以修改加密的key,打開(kāi)php_screw_plus.h可以看到開(kāi)頭就是 #define CAKEY "…" ,把里面的值改為一個(gè)足夠復(fù)雜的key,最好16位以上,比如:9mqss6q7WsBpTMOZ

    vi php_screw_plus.h

    修改完畢之后,直接開(kāi)始編譯,執(zhí)行make命令,如果最后顯示Build complete.說(shuō)明編譯成功,擴(kuò)展在modules里面,如果報(bào)錯(cuò)請(qǐng)根據(jù)提示進(jìn)行修復(fù),然后make clean之后重新編譯。

    make

    Build complete.

    上面我們編譯的是解密程序,而加密程序也需要我們手動(dòng)編譯一下,進(jìn)入tools目錄執(zhí)行make命令即可。如果沒(méi)有報(bào)錯(cuò),則擴(kuò)展就全部編譯完成了。

    cd tools/

    make

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

    vi php/etc/php.ini

    加入絕對(duì)路徑例如

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

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

    用什么保護(hù)php代碼安全?screw plus可以!

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

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

    用什么保護(hù)php代碼安全?screw plus可以!

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

    用什么保護(hù)php代碼安全?screw plus可以!

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

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

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

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

    推薦學(xué)習(xí):《PHP視頻教程》

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)