25 $this->savedMaxExecutionTime = ini_get(
"max_execution_time");
26 if ($this->savedMaxExecutionTime <= 0)
28 $phpMaxExecutionTime = 30;
32 $phpMaxExecutionTime = $this->savedMaxExecutionTime - 2;
34 $this->maximumExecutionTime = time() + $phpMaxExecutionTime;
40 set_time_limit($this->savedMaxExecutionTime);
49 if (
count($this->tests))
55 $testID = $this->
getParam(
'TEST_ID', $this->internalName);
60 $user = static::getNextUser(0);
65 $user = static::getNextUser(
$sessionData->getInt(
'current_user'));
69 if ($user && (
int)$user[
'ID'] > 0)
72 $passwordDictionary = static::getPasswordDictionary();
73 $hash = $user[
'PASSWORD'];
82 if (\
Bitrix\Main\Security\Password::equals(
$hash, $passwordDictionary[
$i]))
84 $sessionData->pushToArray(
'weak_users', (
int)$user[
'ID']);
95 $sessionData->setData(
'current_user', (
int)$user[
'ID'] - 1);
101 'in_progress' =>
true,
110 'problem_count' => !empty($weakUsers) ? 1 : 0,
113 'title' =>
GetMessage(
'SECURITY_SITE_CHECKER_ADMIN_WEAK_PASSWORD'),
115 'detail' =>
GetMessage(
'SECURITY_SITE_CHECKER_ADMIN_WEAK_PASSWORD_DETAIL'),
116 'recommendation' =>
$result =
GetMessage(
'SECURITY_SITE_CHECKER_ADMIN_WEAK_PASSWORD_RECOMMENDATIONS'),
117 'additional_info' => !empty($weakUsers) ? static::formatRecommendation($weakUsers) :
'',
120 'status' => empty($weakUsers),
133 $result = getMessage(
'SECURITY_SITE_CHECKER_ADMIN_WEAK_PASSWORD_USER_LIST');
134 foreach (static::getUsersLogins($weakUsers) as $id =>
$login)
137 '<br><a href="/bitrix/admin/user_edit.php?ID=%d" target="_blank">%s<a/>',
152 $users = static::getAdminUserList(1, $id);
153 if ($user = $users->fetch())
172 $dbUser = CUser::GetList(
176 'ID' => implode(
'|', $ids),
187 while ($user = $dbUser->fetch())
189 $result[$user[
'ID']] = $user[
'LOGIN'];
198 static $passwords =
null;
200 if (is_null($passwords))
202 $passwords = file(
$_SERVER[
'DOCUMENT_ROOT'] .
'/bitrix/modules/security/data/passwordlist.txt',
203 FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
216 $dbUser = CUser::GetList(
227 'nTopCount' => $limit,
238 return new CDBResult([]);
247 return (time() >= $this->maximumExecutionTime);
initializeParams(array $params=array())
getParam($name, $defaultValue="")
static getPasswordDictionary()
static getAdminUserList($limit=0, $minId=0)
static getUsersLogins(array $ids)
static formatRecommendation(array $weakUsers)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"