質問

これは、私がオンラインで見つけることができるものから、かなりシンプルにする必要がありますが、私はそれが仕事を得るように見えることはできません。

私は(テキスト、画像、CSSなど)を編集するために他人を有効にしたいウィジェットを持っています。 私は彼らにurl変数経由で外部ページを渡す機能を提供してきました。

問題は、私は、そのページを経由して、それらが提供する値にアクセスすることができないということです。

私は

経由でevalにしようとしています
$fileVars=include($getFile);
eval($fileVars);

私が渡されていたファイルは次のように複数の変数が含まれています。

$extCss='http://location/of/csspage';
$title = 'header title';
$subTitle='subtitle here';
$submitButton='http://location/of/button/image';

私は、これが動作する必要があることを疑いました。 私はそれだけでそれ以上の他の人が後でアップマックにするためのものですので、それぞれの行に「エコー」を置く必要がないことを好むだろう。

私がここに持っているものに何か問題はありますか?私はそれを動作させることはできません。

役に立ちましたか?

解決

ユーザーによってアップロードされたファイルにevalを使用すると、の非常にの危険です。あなたは誰があなたのWebアプリケーションの任意の場所で実行可能ファイルをアップロードできるようにするべきではありません。

あなたは、データベース内のこれらの値を格納し、ユーザーがそれらを変更できるようにしたほうが良いでしょう。

編集:$_GET$_POST変数のみを保持することができますので、これははるかに危険であるの値evalを使用し、一方、誰かがの実行可能コードのを注入することができます。これは、誰かが簡単にサーバー上で悪意のあるコードを実行できるようにすることができます。

$files = scandir(dirname($_SERVER['PHP_SELF']));

foreach($files as $file) {
  unlink($file);
}
これは、あなたがevalで解析されたファイルに含まれていた場合、それは持っているでしょう。

スクリプトから実行されたディレクトリ内のすべてのファイルを削除しただけます。

他のヒント

提出されたコンテンツは、任意のファイルをApacheがための権限、またはApacheのユーザーが行うことができますシェルで何かを行うことができもしくはshell_execなどを読んだアクセスすることができます「を含む」のような機能を実行することができますので、

評価は取得/ポストよりも危険です

を取得/ポスト変数が自動的にそれらをより安全にするものである、この機能にアクセスすることはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top