0
我想做一个插件系统,插件包含PHP代码。 我想如果有人邪恶到达上传这个插件的区域,他可以上传邪恶代码 ,所以我想限制插件文件中使用的功能,如eval()或base64_encode
函数上传失败。如何限制上传的PHP文件中使用的函数?
我认为这将由正则表达式完成,但我没有任何经验。
所以我想这样的事情
<?php
$file = 'plugin.php';
$content = file_get_contents($file);
if(file_is_secure($content)){
upload($file);
}else{
exit('evil');
}
?>
看到这个例子
<?php
$content = file_get_contents('example.php');
preg_match_all("/(function)(\S*\(\S*\))/", $content, $matches);
foreach($matches[2] as $match) {
$function[] = "// " . trim($match) . "<br />\n";
}
natcasesort($function);
$functionlist .= "/* Functions in this file */<br />\n";
$functionlist .= "/**************************/<br />\n\n";
$functionlist .= implode('', $function);
echo $functionlist;
?>
我想要一个像这样的,但用于制作白名单和不使用的功能,但功能它的自我“我的意思是function();
而不是function name(){}
您正处于一个让用户上传'.php'文件的世界受到伤害。 – alex 2012-03-17 10:30:54
这是非常危险的,你可能需要做很多工作才能保证安全。也许你可以描述你想让用户做什么类型的事情,我们可以提供一个不同的解决方案? – Lix 2012-03-17 10:32:13
插件是有限的,这意味着我可以限制使用的功能,因为我想 – 2012-03-17 10:33:31