通过文件获取外部变数 - 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
解析的文件,它会刚刚删除脚本从运行目录下的所有文件。
其他提示
评估是最危险的GET / POST,因为提交的内容可以运行的功能,如“包括”可以访问任何文件阿帕奇已经阅读权限,或了shell_exec它可以做的外壳任何apache用户可以做的,等等。
GET / POST变量不会自动访问该功能,这是什么使他们更安全。
不隶属于 StackOverflow