You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							33 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							33 lines
						
					
					
						
							1.2 KiB
						
					
					
				| <?php
 | |
| namespace phpFastCache\Util;
 | |
| define('PHP_OPEN_BASEDIR', @ini_get("open_basedir"));
 | |
| 
 | |
| class OpenBaseDir {
 | |
|     public static $stores = array();
 | |
|     public static function checkBaseDir($path) {
 | |
|         if(!is_null(PHP_OPEN_BASEDIR) && PHP_OPEN_BASEDIR != "") {
 | |
|             /*
 | |
|              * ONLY check ONE time if System Have Open Base Dir
 | |
|              * Else, always return TRUE for system without OPenBaseDir
 | |
|              */
 | |
|             $index = md5($path);
 | |
|             if (!isset(self::$stores[$index])) {
 | |
|                 // never check before, then check it 1 one time for the src dir only
 | |
|                 $list = explode(":", PHP_OPEN_BASEDIR);
 | |
|                 foreach ($list as $allowed_path) {
 | |
|                     $tmp = explode($allowed_path, $path, 2);
 | |
|                     if ($tmp[0] != $path) {
 | |
|                         // echo "<br>".$tmp[0]." = ".$path." BY {$allowed_path}";
 | |
|                         self::$stores[$index] = true;
 | |
|                         return true;
 | |
|                     }
 | |
|                 }
 | |
|                 self::$stores[$index] = false;
 | |
|             } else {
 | |
|                 return self::$stores[$index];
 | |
|             }
 | |
|             return false;
 | |
|         }
 | |
|         return true;
 | |
|     }
 | |
| } |