ホームページ >バックエンド開発 >PHPチュートリアル >PHPコードのセキュリティを保護するには何を使用すればよいでしょうか?ネジプラス缶!

PHPコードのセキュリティを保護するには何を使用すればよいでしょうか?ネジプラス缶!

藏色散人
藏色散人転載
2021-08-13 13:41:403505ブラウズ

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 を使用すれば、さらに 1 ペニーも費やす必要はありません。

以下では、例として 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

にあります。 :

PHP API バージョン: 20100412

Zend モジュール API 番号: 20100525

Zend 拡張 API 番号: 220100525

実行が成功すると、現在の php API バージョン、拡張 API バージョンなどを確認できます。次のステップは、構成を開始することです。設定コマンドは ./configure --with-php-config=[php-config] です。通常、[php-config] も php の bin ディレクトリにあります。絶対パスを書き込むだけです。

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

エラーが報告されない場合は、設定の説明 成功した場合は、コンパイルの次のステップを開始できます。

コンパイルする前に、暗号化されたキーを変更できます。php_screw_plus.h を開くと、先頭が #define CAKEY "..." で始まり、内部の値を複合値に変更していることがわかります。キー、できれば 16 桁以上 (例: 9mqss6q7WsBpTMOZ

vi php_screw_plus.h

vi php_screw_plus.h

修正が完了したら、直接コンパイルを開始し、 make コマンドを実行します。最後の Build complete が表示された場合は、コンパイルが成功し、拡張機能がモジュール内にあることを意味します。エラーが報告された場合は、プロンプトに従って修正し、make clean して再コンパイルしてください。

make

...

ビルド完了。

上でコンパイルしたのが復号プログラムです。暗号化 プログラムも手動でコンパイルする必要がありますが、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 情報を出力する php ファイルを配置できます。次のプロンプトが表示されれば、拡張機能は有効です。

#最後のステップは暗号化プロセスです。

PHPコードのセキュリティを保護するには何を使用すればよいでしょうか?ネジプラス缶!拡張ツール ディレクトリで ./screw [パス] を実行します。 [パス] には単一のファイルまたはフォルダーを指定でき、暗号化を実現できます。

PHPコードのセキュリティを保護するには何を使用すればよいでしょうか?ネジプラス缶!#暗号化が完了したらソースコードを確認すると、最初の数文字の英語を除いて残りが文字化けしていることがわかります。

しかし、Web サイトを開くと、暗号化がないかのように php が正常に実行されます。テスト後の復号速度は 1 秒あたり約 100M で、PHP 自体のパフォーマンス損失は非常に小さく、通常は 20 ミリ秒未満です。

Screw plusには、不正なphpファイルの実行を防ぐ機能もあり、ハッカーがコードをアップロードした場合でも脆弱性は残ります。 php_screw_plus.h も同様に変更し、STRICT_MODE

の後の値を 1 に変更し、###make clean && make###recompile して php を再起動します。次に、以前に暗号化された Web サイトを開くと、実行は正常ですが、任意にクリアテキストの PHP ファイルをアップロードすると、結果は空白になります。 ###

その理由は、暗号化されていないphpファイルのヘッダーには識別キーが含まれておらず、拡張機能は空のコンテンツを返すためです。ハッカーがキーを入手して追加したとしても、それは役に立ちません。コンテンツは復号化されて文字化けしてしまいます。コードがありますが、まだ実行できません。 Screw Plusの保護により、Webサイト全体がダウンロードされたり、悪意のあるコードがアップロードされた場合でも、Webサイトに損害を与えることはありません。

推奨学習: 「PHP ビデオ チュートリアル

以上がPHPコードのセキュリティを保護するには何を使用すればよいでしょうか?ネジプラス缶!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjianshu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。