Ten*_*eno 3 php security wordpress eval
我正在使用下面的代码自动加载和声明类,这样我只需要将类文件放在名为classes的文件夹中.spl_autoload_regsister()中的部分可能对您来说似乎没必要,但它需要作为WordPress插件工作而不会出错.
它使用eval()
和我看到很多网页谈论使用eval()
是坏的,可以创建一个安全漏洞.那怎么会有危险呢?
$strDirPath = dirname(__FILE__) . '\\classes\\';
$arrClassFiles = array_map(create_function( '$a', 'return basename($a, ".php");' ), glob($strDirPath . '*.php'));
spl_autoload_register(
create_function('$class_name', '
global $arrClassFiles, $strDirPath;
if (in_array($class_name, $arrClassFiles))
include($strDirPath . $class_name . ".php");' )
);
foreach ($arrClassFiles as $strClassName) {
$strClassName_alpha = $strClassName . "_Alpha";
eval("class $strClassName_alpha extends $strClassName {};");
}
print_r(get_declared_classes());
Run Code Online (Sandbox Code Playgroud)
也许,有人可以在文件夹中放入php代码的文件名?但我认为它不会影响系统.
如果他们可以为类文件命名randomclass {}; echo $db_password;//.php
,那么您可能会遇到代码执行攻击.
我很确定这不是一个有效的文件名,但有人在制作有效的恶意输入方面比我更有意思.
它通常不是你需要打开自己的攻击面,因为它实际上总是可以避免更好的代码结构.
归档时间: |
|
查看次数: |
173 次 |
最近记录: |