• Модуль: security
  • Путь к файлу: ~/bitrix/modules/security/classes/general/tests/environment.php
  • Класс: CSecurityEnvironmentTest
  • Вызов: CSecurityEnvironmentTest::checkPhpSessionDir
protected function checkPhpSessionDir()
{
	if (self::isRunOnWin())
		return self::STATUS_PASSED;

	if ($this->getSessionGeneralHandlerType() !== SessionConfigurationResolver::TYPE_FILE)
		return self::STATUS_PASSED;

	if (ini_get("session.save_handler") != "files")
		return self::STATUS_PASSED;

	$tmpDir = self::getTmpDir("session.save_path");
	if (!$tmpDir)
		return self::STATUS_PASSED;

	$dir = $tmpDir;
	while ($dir && $dir != '/')
	{
		$perms = static::getFilePerm($dir);
		if (($perms & 0x0001) === 0)
			return self::STATUS_PASSED;

		$dir = dirname($dir);
	}

	$this->addUnformattedDetailError(
		"SECURITY_SITE_CHECKER_SESSION_DIR",
		CSecurityCriticalLevel::HIGHT,
		getMessage("SECURITY_SITE_CHECKER_SESSION_DIR_ADDITIONAL", array(
			"#DIR#" => $tmpDir,
			"#PERMS#" => self::formatFilePermissions(static::getFilePerm($tmpDir)),
		))
	);

	return self::STATUS_FAILED;
}