Поддержка серверов

CSecurityAntiVirus::dolog: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=168965

//    CSecurityAntiVirus::dolog()
//    /bitrix/modules/security/classes/general/antivirus.php:434

    function dolog()
    {
        global $BX_SECURITY_AV_TIMEOUT;
        if(defined("ANTIVIRUS_CREATE_TRACE"))
            $this->CreateTrace();

        $uniq_id = md5($this->data);
        $rsLog = CSecurityDB::Query("SELECT * FROM b_sec_virus WHERE ID = '".$uniq_id."'", "Module: security; Class: CSecurityAntiVirus; Function: AddEventLog; File: ".__FILE__."; Line: ".__LINE__);
        $arLog = CSecurityDB::Fetch($rsLog);
        if($arLog && ($arLog["SENT"] == "Y"))
        {
            CSecurityDB::Query("DELETE FROM b_sec_virus WHERE SENT = 'Y' AND TIMESTAMP_X < ".CSecurityDB::SecondsAgo($BX_SECURITY_AV_TIMEOUT*60)."", "Module: security; Class: CSecurityAntiVirus; Function: AddEventLog; File: ".__FILE__."; Line: ".__LINE__);
            $rsLog = CSecurityDB::Query("SELECT * FROM b_sec_virus WHERE ID = '".$uniq_id."'", "Module: security; Class: CSecurityAntiVirus; Function: AddEventLog; File: ".__FILE__."; Line: ".__LINE__);
            $arLog = CSecurityDB::Fetch($rsLog);
        }

        if(!$arLog)
        {
            $ss = $this->data;

            if(defined("ANTIVIRUS_CREATE_TRACE"))
                foreach($this->resultrules as $k=>$v)
                    $ss .= "\n".$k."=".$v;

            if(defined("SITE_ID") && !defined("ADMIN_SECTION"))
            {
                $SITE_ID = SITE_ID;
            }
            else
            {
                $rsDefSite = CSecurityDB::Query("SELECT LID FROM b_lang WHERE ACTIVE='Y' ORDER BY DEF desc, SORT", "Module: security; Class: CSecurityAntiVirus; Function: AddEventLog; File: ".__FILE__."; Line: ".__LINE__);
                $arDefSite = CSecurityDB::Fetch($rsDefSite);
                if($arDefSite)
                    $SITE_ID = $arDefSite["LID"];
                else
                    $SITE_ID = false;
            }

            $s = serialize(array(
                "SEVERITY" => "SECURITY",
                "AUDIT_TYPE_ID" => "SECURITY_VIRUS",
                "MODULE_ID" => "security",
                "ITEM_ID" => "UNKNOWN",
                "REMOTE_ADDR" => $_SERVER["REMOTE_ADDR"],
                "USER_AGENT" => $_SERVER["HTTP_USER_AGENT"],
                "REQUEST_URI" => $_SERVER["REQUEST_URI"],
                "SITE_ID" => defined("SITE_ID")? SITE_ID: false,
                "USER_ID" => false,
                "GUEST_ID" => array_key_exists("SESS_GUEST_ID", $_SESSION) && ($_SESSION["SESS_GUEST_ID"] > 0)? $_SESSION["SESS_GUEST_ID"]: false,
                "DESCRIPTION" => "==".base64_encode($ss),
            ));
            CSecurityDB::QueryBind(
                "insert into b_sec_virus (ID, TIMESTAMP_X, SITE_ID, INFO) values ('".$uniq_id."', ".CSecurityDB::CurrentTimeFunction().", ".($SITE_ID? "'".$SITE_ID."'": "null").", :INFO)",
                array("INFO" => base64_encode($s)),
                "Module: security; Class: CSecurityAntiVirus; Function: AddEventLog; File: ".__FILE__."; Line: ".__LINE__
            );
            @fclose(@fopen($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/managed_cache/b_sec_virus","w"));
        }
    }
';

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение