Если необходимо совместить возможности защиты административной части интерфейса Битрикса с возможностью входа в систему с динамического IP (к сожалению, не все провайдеры предоставляют статичный IP; ближайший пример - МГТС) ТО можно использовать, например, такой нехитрый код (мне лично надоело вручную через PHPМайАдмин всё это править):
Некоторые пояснения:
$DBLogin - имя БД из dbconn.php
$DBPasswordX - любой произвольный пароль, который Вы определяете также в dbconn.php
Соответственно, если ввести их правильно в оба окошка формы, то скрипт добавить Ваш динамический IP в таблицы Битрикса. И после этого можно авторизоваться в системе с Вашими логином и паролем.
$arExclIPs[0] - так, если Ваш IP первый (и единственный) в админке Битрикса.
Если он второй по счёту, то надо тут сделать так: $arExclIPs[1]
Если третий то так: $arExclIPs[2]
И т.п.
Если будут вопросы - спрашивайте.
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
include("/home/uxxx/xxx.ru/www/bitrix/php_interface/dbconn.php");
print $_SERVER['REMOTE_ADDR'];
$rip = $_SERVER['REMOTE_ADDR'];
$b_form=TRUE;
if(isset($_POST['subm_go']))
{ // Отправка
$b_form=FALSE;
if(($IP1 == $DBPasswordX) && ($IP2 == $DBLogin))
{
print "error";
$var2 = $rip;
$ip3 = ip2long($var2);
//require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/security/include.php");
//require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/security/prolog.php");
$ID = 1;
$arExclIPs = array();
$ar = CSecurityIPRule::GetRuleExclIPs($ID);
foreach($ar as $i => $ip)
{
$arExclIPs[] = htmlspecialchars($ip);
}
$arExclIPs[0] = $rip;
//var_dump($arExclIPs);
$INCL_IPS = array("0.0.0.1-255.255.255.255");
$ob = new CSecurityIPRule;
$ID = 1;
$arFields = array(
"RULE_TYPE" => "A",
"ACTIVE" => "Y",
"ADMIN_SECTION" => "Y",
"SITE_ID" => false,
"SORT" => 10,
"NAME" => "Автоматическое правило защиты административной части",
"ACTIVE_FROM" => false,
"ACTIVE_TO" => false,
"INCL_IPS" => $INCL_IPS,
"EXCL_IPS" => $arExclIPs,
"INCL_MASKS" => array("/bitrix/admin/*"),
"EXCL_MASKS" => array(),
);
$res = $ob->Update($ID, $arFields);
$CACHE_MANAGER->CleanDir("b_sec_iprule");
}
else
{
print "error";
}
}
if($b_form)
{
$out.='<form method="post">
<table><tr><td>Введите № IP и нажмите Отправить!</td>
<td><input type="password" name="IP" value="'.$IP1.'" size="35"></td>
<td><input type="password" name="IP2" value="'.$IP2.'" size="35"></td>
</tr></table>
<br><input type="Submit" name="subm_go" value="Отправить">
</form>';
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<h3>Test IP:</h3>
<?=$out?>
</body>
</html>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
|
Некоторые пояснения:
$DBLogin - имя БД из dbconn.php
$DBPasswordX - любой произвольный пароль, который Вы определяете также в dbconn.php
Соответственно, если ввести их правильно в оба окошка формы, то скрипт добавить Ваш динамический IP в таблицы Битрикса. И после этого можно авторизоваться в системе с Вашими логином и паролем.
$arExclIPs[0] - так, если Ваш IP первый (и единственный) в админке Битрикса.
Если он второй по счёту, то надо тут сделать так: $arExclIPs[1]
Если третий то так: $arExclIPs[2]
И т.п.
Если будут вопросы - спрашивайте.

