douyaju4749
2018-10-05 14:24
浏览 75
已采纳

阻止PHP脚本访问文件系统

I would like to run my custom php script only if script has not contain any function which can access to other scripts.

This is my solution:

function validateScript($data)
{
    $match = null;
    if(preg_match('/error_reporting|require|include|file_get_contents|glob|file|fgets|fread|dearfile|ini_set|system|proc_open|iframe|frame|show_source|readfile|passthru|pdo|mysql|phpinfo|session|server|var_dump|var_export|echo|exec|eval|popen|telnet|\$\$|\${\$/i', $data, $match)) {
        return false;
    }

    return true;
}

$script = 'customscript.php';
$data = file_get_contents($script)

if(validateScript($data)) {
    include $script;
}

I am not sure if this is good solution or if exists more secured way how to do it?

图片转代码服务由CSDN问答提供 功能建议

我想仅在脚本不包含任何可以访问其他脚本的函数时运行我的自定义php脚本。

这是我的解决方案:

  function validateScript($ data)
 {
 $ match = null; 
 if(n) 的preg_match('/的error_reporting |要求|包括|的file_get_contents |水珠|文件|与fgets |的fread | dearfile |的ini_set |系统| proc_open | IFRAME |帧| show_source | ReadFile的|通路| PDO | MySQL的|的phpinfo |会话|服务器|的var_dump |  var_export | echo | exec | eval | popen | telnet | \ $ \ $ | \ $ {\ $ / i',$ data,$ match)){
 return false; 
} 
 
返回true; \  n} 
 
 $ script ='customscript.php'; 
 $ data = file_get_contents($ script)
 
if(validateScript($ data)){
 include $ script; 
} 
   
 
 

我不确定这是不是很好的解决方案,还是存在更安全的方法?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题