1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
taint_checking.php
См. документацию.
1<?
8
13class CSecurityTaintCheckingTest
14 extends CSecurityBaseTest
15{
16 const REQUEST_TIMEOUT = 3;
17 protected $internalName = "TaintCheckingTest";
18
19 public function __construct()
20 {
21 require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/vuln_scanner.php");
22 IncludeModuleLangFile(__FILE__);
23 }
24
32 public function checkRequirements($params = array())
33 {
34 if(extension_loaded('tokenizer') !== true)
35 throw new CSecurityRequirementsException(GetMessage("SECURITY_SITE_CHECKER_TAINT_TOKENIZER_NOT_FOUND"));
36 $maxExecutionTime = ini_get("max_execution_time");
38 throw new CSecurityRequirementsException(GetMessage("SECURITY_SITE_CHECKER_TAINT_EXECUTION_TIME"));
39 $memoryLimit = CUtil::Unformat(ini_get("memory_limit"));
40 if($memoryLimit > 0 && $memoryLimit <= 250 * 1024 * 1024)
41 throw new CSecurityRequirementsException(GetMessage("SECURITY_SITE_CHECKER_TAINT_MEMORY_LIMIT"));
42 return true;
43 }
44
50 public function check(array $params = array())
51 {
53 $result = $this->formatResults($dirtyResults);
54 return $result;
55 }
56
61 protected function formatResults($pResults)
62 {
63 $result = array();
64 $result["name"] = $this->getName();
65 if(isset($pResults["STATUS"]))
66 {
67 $result["status"] = $pResults["STATUS"];
68 }
69
70 if(isset($pResults["IN_PROGRESS"]))
71 {
72 $result["in_progress"] = $pResults["IN_PROGRESS"];
73 $result["timeout"] = self::REQUEST_TIMEOUT;
74 }
75
76 elseif(!$result["status"])
77 {
78 $result["problem_count"] = 1;
79 }
80
81 if(isset($pResults["MESSAGE"]))
82 {
83 $result["errors"] = self::formatErrors($pResults["MESSAGE"]);
84 }
85 else
86 {
87 $result["errors"] = array();
88 }
89
90 return $result;
91 }
92
97 protected static function formatErrors($pErrors)
98 {
99 $result = array();
100 if(isset($pErrors["PROBLEM_COUNT"]) && intval($pErrors["PROBLEM_COUNT"]) > 0)
101 {
102 $problemCount = $pErrors["PROBLEM_COUNT"];
103 }
104 else
105 {
106 $problemCount = 0;
107 }
108 $result["title"] = GetMessage("SECURITY_SITE_CHECKER_TAINT_TITLE", array("#COUNT#" => $problemCount));
110 $result["recommendation"] = GetMessage("SECURITY_SITE_CHECKER_TAINT_RECOMMENDATION");
111 $result["detail"] = self::formatDetail($pErrors["DETAIL"]);
112 return array($result);
113 }
114
120 protected static function formatDetail($pDetail)
121 {
122 $detail = preg_replace("#
123 (<span\sclass=\"checklist-vulnscan-filename\">[^<]+</span>\s*)
124 (<div\sid=\"[^\"]+\">\s*<div\sclass=\"checklist-vulnscan-vulnblock\">\s*)
125 (<div\sclass=\"checklist-vulnscan-vulnscan-blocktitle\">[^<]+</div>)
126 #xis", "\\3\\2\\1", $pDetail);
127 return $detail;
128 }
129
130}
static checkVulnerabilities($arParams)
Определения vuln_scanner.php:2250
Определения base_test.php:14
checkRequirements($params=array())
Определения base_test.php:39
getName()
Определения base_test.php:28
check(array $params=array())
Определения base_test.php:49
const HIGHT
Определения critical_level.php:17
static Unformat($str)
Определения util.php:739
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
__construct(?int $storeId, int $productId, string $barcode, int $userId)
Определения basestorebarcodeaction.php:38
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$maxExecutionTime
Определения yandex_setup.php:647