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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPパーミッションについて
-
phpスクリプトのみで定期実行
-
OCILogonとOra_Logonの違いなど
-
PHPスクリプトからサービスの再...
-
phpをインストールしたのにブラ...
-
PHPで外部アプリケーションを操...
-
PHPでUNIXシステムコマンド...
-
xserver のCronでphpを実行する...
-
wiki文法のようにリンク生成
-
phpファイルをコマンドラインで...
-
CFileDialogの最初のディレクト...
-
GDへ値を渡す方法は?
-
onedrive にexcelファイルをア...
-
データ送信をボタンを押さずに...
-
10MB以内のJPG画像
-
youtubeに音声のみのmp4ファイ...
-
.phpファイルが、表示されない
-
画像リストを作りたい
-
phpのPDOの導入
-
PHPから別なPHPへ移動(?)する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヒアドキュメントの中で演算子...
-
PHPからバッチファイルの実行
-
mysql複数レコードをまとめて削...
-
PHPでサーバーにインストールさ...
-
Switch文における、returnとbre...
-
PHPでコマンドプロンプトを実行...
-
phpからエクセルのマクロを実行...
-
【PHP】命令は記述順に処理...
-
PHPで、C#のプログラムを実行す...
-
別サーバのプログラムを起動
-
JSのWINOW.CONFI...
-
htmlでsubmitで指定したAction...
-
require_onceが動いていない
-
systemをrootで実行したい
-
PHPで外部プログラムのバックグ...
-
PHPからlhaコマンドを使いたい
-
phpスクリプトのみで定期実行
-
PHPでUNIXシステムコマンド...
-
PHPからexecを使ってGnuPGを実...
-
PHPスクリプトからサービスの再...
おすすめ情報