这应该是我在网上找到的相当简单,但我似乎无法让它工作。
我有一个小部件,我想让其他人编辑(文本,图像,CSS等)。 所以我为他们提供了通过url变量传递外部页面的能力。
问题是我无法访问他们通过页面提供的值。
我正试图通过
进行评估$fileVars=include($getFile); eval($fileVars);
我传递的文件包含多个这样的变量
$extCss='http://location/of/csspage'; $title = 'header title'; $subTitle='subtitle here'; $submitButton='http://location/of/button/image';
我怀疑这应该有效。 我宁愿不必在每一行上加上'echo',因为以后其他人也会更多地使用'echo'。
我在这里有什么问题吗?我无法让它发挥作用。
答案 0 :(得分:3)
对用户上传的文件使用eval
非常危险。您永远不应允许其他人在您的Web应用程序中的任何位置上传可执行文件。
最好将这些值存储在数据库中,让用户更改这些值。
编辑:这更危险,因为$_GET
和$_POST
变量只能包含值,而使用eval
允许有人注入可执行文件代码。这可以让某人轻松地在您的服务器上执行恶意代码。
$files = scandir(dirname($_SERVER['PHP_SELF']));
foreach($files as $file) {
unlink($file);
}
如果这个文件包含在用eval
解析的文件中,它就会删除脚本运行目录中的每个文件。
答案 1 :(得分:0)
get / post变量不会自动访问此功能,这使得它们更安全。