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