<?php define("ADMIN_MODULE_NAME", "security"); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; CModule::IncludeModule('security'); IncludeModuleLangFile(__FILE__); /** * @global CUser $USER * @global CMain $APPLICATION **/ if (!$USER->CanDoOperation('security_panel_view')) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $strError = ""; $data = array("scanner" => array("NAME" => GetMessage("SEC_PANEL_SCANNER_NAME"), "TITLE" => GetMessage("SEC_PANEL_SCANNER_TITLE"), "HEADERS" => array(array("id" => "KPI_NAME", "content" => GetMessage("SEC_PANEL_HEADERS_NAME"), "default" => true), array("id" => "KPI_VALUE", "content" => GetMessage("SEC_PANEL_HEADERS_VALUE"), "align" => "left", "default" => true), array("id" => "KPI_RECOMMENDATION", "content" => GetMessage("SEC_PANEL_HEADERS_RECOMMENDATION"), "default" => true)), "ITEMS" => array()), "std" => array("NAME" => GetMessage("SEC_PANEL_STD_NAME"), "TITLE" => GetMessage("SEC_PANEL_STD_TITLE"), "HEADERS" => array(array("id" => "KPI_NAME", "content" => GetMessage("SEC_PANEL_HEADERS_NAME"), "default" => true), array("id" => "KPI_VALUE", "content" => GetMessage("SEC_PANEL_HEADERS_VALUE"), "align" => "left", "default" => true), array("id" => "KPI_RECOMMENDATION", "content" => GetMessage("SEC_PANEL_HEADERS_RECOMMENDATION"), "default" => true)), "ITEMS" => array()), "high" => array("NAME" => GetMessage("SEC_PANEL_HIGH_NAME"), "TITLE" => GetMessage("SEC_PANEL_HIGH_TITLE"), "HEADERS" => array(array("id" => "KPI_NAME", "content" => GetMessage("SEC_PANEL_HEADERS_NAME"), "default" => true), array("id" => "KPI_VALUE", "content" => GetMessage("SEC_PANEL_HEADERS_VALUE"), "align" => "left", "default" => true), array("id" => "KPI_RECOMMENDATION", "content" => GetMessage("SEC_PANEL_HEADERS_RECOMMENDATION"), "default" => true)), "ITEMS" => array()), "very_high" => array("NAME" => GetMessage("SEC_PANEL_VERY_HIGH_NAME"), "TITLE" => GetMessage("SEC_PANEL_VERY_HIGH_TITLE"), "HEADERS" => array(array("id" => "KPI_NAME", "content" => GetMessage("SEC_PANEL_HEADERS_NAME"), "default" => true), array("id" => "KPI_VALUE", "content" => GetMessage("SEC_PANEL_HEADERS_VALUE"), "align" => "left", "default" => true), array("id" => "KPI_RECOMMENDATION", "content" => GetMessage("SEC_PANEL_HEADERS_RECOMMENDATION"), "default" => true)), "ITEMS" => array())); $lastTestingInfo = CSecuritySiteChecker::getLastTestingInfo(); if (isset($lastTestingInfo["results"])) { $lastResults = $lastTestingInfo["results"]; } else { $lastResults = array(); } if (!empty($lastResults)) { $criticalResultsCount = CSecuritySiteChecker::calculateCriticalResults($lastResults); } else { $criticalResultsCount = 0; } if (isset($lastTestingInfo["test_date"])) { $lastDate = $lastTestingInfo["test_date"]; } else { $lastDate = GetMessage("SEC_PANEL_SCANNER_NEVER_START"); }
/** * @param array $pResults * @return int */ public static function calculateCriticalResults($pResults = array()) { if (empty($pResults)) { $testingInfo = CSecuritySiteChecker::getLastTestingInfo(); if (isset($testingInfo["results"])) { $results = $testingInfo["results"]; } else { $results = array(); } } else { $results = $pResults; } $criticalResultsCount = 0; foreach ($results as $result) { if (isset($result["critical"]) && $result["critical"] === CSecurityCriticalLevel::HIGHT) { $criticalResultsCount++; } } return $criticalResultsCount; }