ファイルを介して外部変数を取得する - evalは/が含ま
質問
これは、私がオンラインで見つけることができるものから、かなりシンプルにする必要がありますが、私はそれが仕事を得るように見えることはできません。
私は(テキスト、画像、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
で解析されたファイルに含まれていた場合、それは持っているでしょう。スクリプトから実行されたディレクトリ内のすべてのファイルを削除しただけます。
他のヒント
評価は取得/ポストよりも危険です
を取得/ポスト変数が自動的にそれらをより安全にするものである、この機能にアクセスすることはできません。