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
これは非常に危険なので、これを安全にするために多くの作業を行う必要があります。たぶんあなたはあなたのユーザーが何をできるようにしたいのかを記述することができ、我々は別の解決法を提供することができますか? – Lix
プラグインが限られています。これは、私が使用する関数を制限することを意味します。 –