这应该是从我可以在网上找到相当简单,但我似乎无法得到它的工作。

我已经得到了我想要让其他人编辑(文字,图片,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解析的文件,它会刚刚删除脚本从运行目录下的所有文件。

其他提示

评估是最危险的GET / POST,因为提交的内容可以运行的功能,如“包括”可以访问任何文件阿帕奇已经阅读权限,或了shell_exec它可以做的外壳任何apache用户可以做的,等等。

GET / POST变量不会自动访问该功能,这是什么使他们更安全。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top