2016-07-18 19 views
-1

PHPソースコードをエンコードまたは暗号化するにはどうすればよいですか?私はこの1つPHP Base64 encoderを試してみたPHPソースコードの暗号化/ Obfuscator

  1. 、問題はそれを知っている誰かのために解読することは容易であるということです。

  2. 強力な暗号化のために私はこの1つを使用します。AES Enryptionしかし、私はいくつかのPHPコードを暗号化しても私のページは機能しません。

どの方法が最適ですか?私はIoncubeやLoaderを使用したくありません。

+4

考えられる[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)誰かがソースコードを手に入れることができるのをもっと心配する必要があります... – FirstOne

答えて

0

PHPコードを暗号化すると、セキュリティが誤っている可能性があります。本当に暗号化されたコードは、PHPパーサーがそれを理解できないため実行できません。 スクランブリングまたは難読化コードとして、あなたがしようとしていることを考えるのがより正確だと思います。これによりコードを読むのがずっと難しくなりますが、意欲的な敵に対して高い価値のものを保護している場合、難読化はあなたに少し時間を掛けるだけであるという意味で、常に可逆的です。

コードを難読化するソリューションはおそらく多くあります。より一般的なオプションの1つはIonCube Loaderです。私はそれを使用したことがないと私はその有効性に精通していないが、私が知っている唯一のものです。他の人はフィードバックを追加できます。

ソースファイルを保護するために、信頼できない人がアクセスできる環境にソースファイルを置くことは望ましくありません。たとえば、重要なPHPファイルがWebサーバー上の一般公開されているディレクトリ(通常はpublic_htmlまたはwwwと呼ばれています)の外部にあることを確認するのが簡単な手順です。

+0

"本当に暗号化されたコードは、PHPパーサーがそれを理解できないため実行できません。"これが、ionCubeのようなソリューションがコードを実行する拡張機能を持つ理由です。エンコードは、まずバイトコードにコンパイルし、それに保護を追加します。また、V9 ionCubeなどの暗号化されたものもあり、どこにも保存されていないダイナミックキーを使用して、保存されたキーの固有の弱点を解決できます。 OPは拡張を望んでいないので、唯一のオプションはeval()を押すためのソースを保護することです。これで十分ですが、ソースが非常に簡単に公開される可能性があります。開示:私はionCubeに関連しています。 – Nick

+0

@Nick "* eval()*を押すためのソースを保護する"とはどういう意味ですか? – BeetleJuice

+0

あなたが正しく言っているように、PHP自体はソースのみを理解することができるので、拡張機能を使用していないプロテクターは、コードをソースコードの形式に復元する必要があります。 (AGH!誤ってリターン投稿にコメントを打つことを嫌う)アプローチは、復元されたソースに対してeval()を呼び出すことです。 eval()が使用するPHPエンジンAPI Cルーチンにパッチを当てることで、ソースを公開することができます。 – Nick