PHPファイルの暗号化(難読化)方法
PHPファイルを暗号化(難読化)する方法を探しています。
現在は、有料の暗号化ツールを使用せずに、
自作で暗号化(難読化)を実施可能かどうかを検討しております。
ファイル全体を暗号化したいのですが、
ファイル内容は、PHPの開始タグ(<?php)、終了タグ(?>)とHTMLタグが混在していて
それをbase64_encodeなどを使用し、暗号化をかけた場合、
base64_decodeで復号をかけたデータをブラウザにて実行させたい場合は、
どのようにすればよいか困っています。
eval関数は、phpソースコードを実行するため、
PHPの開始タグ、終了タグをのぞいた、phpコードしか実行できません。
echo関数では、phpソースコードもそのまま出力されます。
PHPの開始タグ、終了タグとHTMLタグ混在していても、
ブラウザ上でphpコードの実行とHTMLタグの出力が実行できる方法はないでしょうか。
ネット上で調べてみましたが、
phpコードのみを暗号化して、eval関数で実行するものしか
発見することができませんでした。
そもそも、ファイル全体を上記のような方法で復号化⇒実行することは無理で、
ファイルの中身を解析し、タグの置き換えや、
eval関数が使用可能な処理とそうでない処理とに分けるようなことになるのでしょうか。
暗号の目的は、ファイルが一見、何を行っているのかわからなく、
そのまま処理を使いまわしできないようにしたいためです。
PHPや暗号化に詳しい人が復号化できてしまうことは、理解しております。
何か方法やアドバイス等、ございましたら、
ご回答頂ければと思います。
phpバージョンは、5.2.14です。
以上、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
私用(趣味)で提供しているのなら、割り切った方が良いのでは?
業務で提供なら、それこそ再利用の禁止を契約書に明記する方向で、金額上乗せ出来るのなら上乗せしておくとか。
私用なら兎も角、業務だと、そもそもソース見る人はプロになると思いますので。
(提供先の担当者が見るとは限りませんから。)
この回答への補足
今回は業務での提供となります。
契約書に再利用や改変などは明記することとなりますが、
もう少し調査を行い、暗号化が厳しいようでしたら、
ソースはそのままとするか、暗号化ソフトの購入かを上司に決定して頂きます。
ご意見ありがとうございます。
契約書に再利用や改変などを明記するとともに、
また、ソースを当初予定していました簡単な暗号化をかけることとしました。
暗号化は、base64方式で暗号化し、復号した情報に対して
PHPコードとPHPコードでない処理をeval関数とecho関数で実行するように
暗号化ファイルを一括で生成するツールをPHPで自作し、対応しました。
ご回答ありがとうございました。
No.3
- 回答日時:
使用するサーバ環境はLinux/windowsなど
どのような環境でしょうか?
この回答への補足
サーバ環境はWindowsで調査しています。
Linuxでは、php_screwで暗号化した状態での動作確認はできました。
試しに、Windows用にphp_screwを改良してみましたが、
一応動作をしたのですが、何度かajax通信を実施することで
サーバが固まってしまい、うまく改良できなかったようです。
php_screwまでの暗号化は求めておりませんが、
windows版でソース内容を上記の質問内容に記載のように
暗号化(難読化)できればと考えております。
もう少し調査を続けたいと思います。
以上、よろしくお願いします。
契約書に再利用や改変などを明記するとともに、
また、ソースを当初予定していました簡単な暗号化をかけることとしました。
暗号化は、base64方式で暗号化し、復号した情報に対して
PHPコードとPHPコードでない処理をeval関数とecho関数で実行するように
暗号化ファイルを一括で生成するツールをPHPで自作し、対応しました。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- その他(セキュリティ) HDDのデーターを暗号化したい。 3 2022/11/08 08:33
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- その他(IT・Webサービス) ランサムウエアに汚染されたかもしれない外付けHDDのファイル復旧方法 3 2023/02/04 01:23
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトをPHPで動かそ...
-
phpからエクセルのマクロを実行...
-
php実行中に実行中のphpファイ...
-
別サーバのプログラムを起動
-
eclipseのlocalhostの設定について
-
ヒアドキュメントの中で演算子...
-
【PHP】命令は記述順に処理...
-
mysql複数レコードをまとめて削...
-
PHP フォルダ名やファイル名に0...
-
PHPからCプログラムを実行して...
-
JSのWINOW.CONFI...
-
PHPからlhaコマンドを使いたい
-
PHPの特徴は
-
PHPファイルをcronで実行す...
-
フォントの色を変えるには?
-
PHPのWARNINGをcatchするには
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
CSV出力にHTMLが入ってしまう
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
php実行中に実行中のphpファイ...
-
phpからエクセルのマクロを実行...
-
ヒアドキュメントの中で演算子...
-
PHPからバッチファイルの実行
-
【PHP】命令は記述順に処理...
-
シェルスクリプトをPHPで動かそ...
-
Switch文における、returnとbre...
-
httpdのプロセスが自動で消えな...
-
copy() で属性保存
-
Prompt入力値をphp変数として取...
-
JSのWINOW.CONFI...
-
htmlでsubmitで指定したAction...
-
unix(freebsd)でmysqldumpコマ...
-
PHPのsystem()でjava
-
別サーバのプログラムを起動
-
PHPでコマンドプロンプトを実行...
-
社内LANで複数台のPCからApache...
-
PHPからCプログラムを実行して...
-
PHPで、C#のプログラムを実行す...
おすすめ情報