2016-06-30 3 views
0

私はユーザーが.zipファイルをダウンロードし、サーバーにアップロードして行けるようにするWordpressに似たサイトプラットフォームを構築しています。evalリモートコード私のサーバーから

eval()は悪ですが、コードにはユーザーや変数の入力は含まれません。

ここでの利点は、更新が自動的に行われることです。私はちょうど私のサーバーでつかまえられているコードを変更することができます。

このコードを使用しているクライアントでは、トラフィック量がかなり少ないため、サーバーのオーバーロードに心配はありません。重い持ち上げのほとんどは私たちによって行われます。

$code=file_get_contents("http://myserver.com/code.txt"); 
eval($code); 

これは現実的な選択肢である:

ここでは基本的なコードの概念がありますか?どのようなセキュリティホールを心配する必要がありますか?

+0

私の頭に浮かぶ最初のことは、コードを評価するときにユーザがあなたのマシンにフルアクセスできることです。そのため、彼はあなたのホームディレクトリを削除し、そのようなものを包むことができます。問題は、自分のユーザーを信頼できるかどうかです。もしそうなら、細かい、そうでなければ、注意してください。つまり、データベースにアクセスできないディレクトリが適切なCHMOD設定で適切に保護されている限り、あなたは**安全**であるべきです**しかし、私はそうしませんそれはちょうど私の意見です。とにかく簡単に言えば、ユーザーの可変入力のためにevalは悪いことではありません。 – briosheje

+0

私はあなたのシステムが後方にあると思います。投稿されたコードは私の*クライアント*サーバに置かれます。彼らのサーバーは* my *サーバーのコードを取得して評価します。 – hellohellosharp

+0

ああ、それはあなたのクライアントの問題だ:P簡単に言えば、彼らは**悪いかもしれない**のコードを入手することに同意するが、彼らが**あなたを信頼する限り、それは大丈夫だ。誰かがあなたに注射する方法を見つけたら、注射されるでしょう。危険であるかもしれませんが、それで大丈夫で、彼らがあなたを信じている限り、それは大丈夫です。ただし、コードを評価するとデバッグ/読み取りが非常に難しくなることに注意してください。その点も考慮してください。そのコンテキストでは、とにかく、それはむしろ本当にあなたの "問題"です。:) – briosheje

答えて

0

これはうまくいくという意味で「現実的」だが、同時にシステム管理者の悪夢のように聞こえる。要求が行われるたびにクライアントがダウンロードしてリモートコードを実行することを意味する場合、クライアントはいつでもマスターサーバーがダウンしたり到達不能になった場合に気をつけてください。これは、ミッションクリティカルなサービスであり、お客様が必要とする限り、永遠に稼働し続ける必要があります。

自動更新をメリットとして表示しますが、それはどうですか?ほぼすべてのソフトウェアプラットフォームで、ユーザーが依存する機能は時間とともに変化する可能性があります。関数のシグネチャが変更される可能性があります。または、機能が完全に削除され、より洗練された代替手段が得られる可能性があります。あなたはフレームワークのいくつかの形式を書いているように聞こえるので、将来のバージョンは常に下位互換性があることを保証できますか?誰もが生産上の理由でソフトウェアの最先端のバージョンを使用しているわけではありません - 彼らは安定して使用しているものを望んでいます。あなたのプラットフォームのアップグレードされたバージョンが一晩中にロールアウトされ、クライアントによって書かれたいくつかのカスタムコードが壊れている場合(たとえそうしなくても、少なくとも1人はこれをやろうとします)、廃止されましたが以前のリリースではまだ動作しましたが、どのように動作するバージョンに戻すのでしょうか?

最終的には1トンの技術的負債が発生するようです。

関連する問題