29 $this->savedMaxExecutionTime = ini_get(
"max_execution_time");
30 if($this->savedMaxExecutionTime <= 0)
31 $phpMaxExecutionTime = 30;
33 $phpMaxExecutionTime = $this->savedMaxExecutionTime - 2;
34 $this->maximumExecutionTime = time() + $phpMaxExecutionTime;
40 set_time_limit($this->savedMaxExecutionTime);
52 if($this->maximumExecutionTime - time() <= 5)
65 if(!self::isRunOnWin())
77 "fatal_error_text" =>
GetMessage($e->getMessage())
82 if($this->filesCount <= self::MAX_OUTPUT_FILES)
85 $recommendationFilesCount = self::MAX_OUTPUT_FILES;
87 $additionalInfo =
GetMessage(
"SECURITY_SITE_CHECKER_FILE_PERM_ADDITIONAL",
array(
"#COUNT#" => $recommendationFilesCount));
88 $additionalInfo .=
"<br>";
96 "title" =>
GetMessage(
"SECURITY_SITE_CHECKER_FILE_PERM_TITLE",
array(
"#COUNT#" => $this->filesCount)),
98 "detail" =>
GetMessage(
"SECURITY_SITE_CHECKER_FILE_PERM_DETAIL"),
99 "recommendation" =>
GetMessage(
"SECURITY_SITE_CHECKER_FILE_PERM_RECOMMENDATION"),
100 "additional_info" => $additionalInfo
103 "status" => ($this->filesCount <= 0)
114 return is_dir($pFileName);
123 return is_file($pFileName) && in_array(mb_substr($pFileName, -4), self::$interestingFileExtentions,
true);
136 while (
false !== ($item = readdir(
$handle)))
138 if($item ==
"." || $item ==
".." || in_array($item, self::$skipDirs))
141 if($this->filesCount > self::MAX_OUTPUT_FILES)
144 if(time() >= $this->maximumExecutionTime)
145 throw new Exception(
'SECURITY_SITE_CHECKER_FILE_PERM_TIMEOUT');
147 $curFile = $pDir.
"/".$item;
149 if ($isInteresting && self::isWorldWritable($curFile))
156 if (is_dir($curFile))
174 if($this->filesCount <= self::MAX_OUTPUT_FILES)
176 array_push($this->filesPath, self::removeDocumentRoot($pFilePath));
194 return implode($pGlue, $this->filesPath);
initializeParams(array $params=array())
getParam($name, $defaultValue="")
checkRequirements($params=array())
static $interestingFileExtentions
checkWorldWritableDirRecursive($pDir)
static isInterestingDir($pFileName)
check(array $params=array())
static isInterestingFile($pFileName)
getFilesPathInString($pGlue="<br>")
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)