if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SEC_IPRULE_ADMIN_SAVE_ERROR"), $e); } $bVarsFromForm = true; } elseif ($selfBlock && $_POST["USE_THE_FORCE_LUK"] !== "Y") { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SEC_IPRULE_ADMIN_SAVE_ERROR"), $e); } $bVarsFromForm = true; $bShowForce = true; } else { $arFields = array("RULE_TYPE" => "A", "ACTIVE" => $activate_iprule ? "Y" : ($deactivate_iprule ? "N" : $ACTIVE), "ADMIN_SECTION" => "Y", "SITE_ID" => false, "SORT" => 10, "NAME" => GetMessage("SEC_IPRULE_ADMIN_RULE_NAME"), "ACTIVE_FROM" => false, "ACTIVE_TO" => false, "INCL_IPS" => $INCL_IPS, "EXCL_IPS" => $_POST["EXCL_IPS"], "INCL_MASKS" => array("/bitrix/admin/*"), "EXCL_MASKS" => $exclMasks); if ($ID > 0) { $res = $ob->Update($ID, $arFields); } else { $ID = $ob->Add($arFields); $res = $ID > 0; } if ($res) { if ($save != "" && $_GET["return_url"] != "") { LocalRedirect($_GET["return_url"]); } LocalRedirect("/bitrix/admin/security_iprule_admin.php?lang=" . LANGUAGE_ID . ($return_url ? "&return_url=" . urlencode($_GET["return_url"]) : "") . "&" . $tabControl->ActiveTabParam()); } else { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SEC_IPRULE_ADMIN_SAVE_ERROR"), $e); } $bVarsFromForm = true; } } }
/** * @param string $ip * @return bool */ protected function blockCurrentUser($ip = "") { if(self::currentUserHaveRightsForSkip()) return false; if(!is_string($ip) || $ip === "") $ip = $_SERVER["REMOTE_ADDR"]; $rule = new CSecurityIPRule; CTimeZone::Disable(); $added = $rule->Add(array( "RULE_TYPE" => "A", "ACTIVE" => "Y", "ADMIN_SECTION" => "Y", "NAME" => getMessage("SECURITY_FILTER_IP_RULE", array("#IP#" => $ip)), "ACTIVE_FROM" => ConvertTimeStamp(false, "FULL"), "ACTIVE_TO" => ConvertTimeStamp(time()+COption::getOptionInt("security", "filter_duration")*60, "FULL"), "INCL_IPS" => array($ip), "INCL_MASKS" => array("/*"), )); CTimeZone::Enable(); return ($added > 0); }
/** * @param string $pIP */ protected function blockCurrentUser($pIP = "") { static $blocked = array(); if ($this->currentUserHaveRightsForSkip()) { return; } if (is_string($pIP) && $pIP != "") { $ip = $pIP; } else { $ip = $_SERVER["REMOTE_ADDR"]; } if (!array_key_exists($ip, $blocked)) { $rule = new CSecurityIPRule(); CTimeZone::Disable(); $rule->Add(array("RULE_TYPE" => "A", "ACTIVE" => "Y", "ADMIN_SECTION" => "Y", "NAME" => GetMessage("SECURITY_FILTER_IP_RULE", array("#IP#" => $ip)), "ACTIVE_FROM" => ConvertTimeStamp(false, "FULL"), "ACTIVE_TO" => ConvertTimeStamp(time() + COption::GetOptionInt("security", "filter_duration") * 60, "FULL"), "INCL_IPS" => array($ip), "INCL_MASKS" => array("*"))); CTimeZone::Enable(); $blocked[$ip] = true; $this->isUserBlocked = true; } }