ModuleSecurity

Package engine.modules
Inheritance class ModuleSecurity » Module » LsObject
Since 1.0
Source Code /engine/modules/security/Security.class.php
Модуль безопасности Необходимо использовать перед обработкой отправленной формы:
if (getRequest('submit_add')) {
	$this->Security_ValidateSendForm();
	// далее код обработки формы
 ......
}

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
bIsInit bool Указывает на то, была ли проведенна инициализация модуля Module
oEngine Engine Объект ядра Module

Public Methods

Hide inherited methods

MethodDescriptionDefined By
Init() Инициализируем модуль ModuleSecurity
SetInit() Помечает модуль как инициализированный Module
SetSessionKey() Устанавливает security-ключ в сессию ModuleSecurity
Shutdown() Завершение модуля ModuleSecurity
ValidateReferal() Проверка на соотвествие реферала ModuleSecurity
ValidateSendForm() Производит валидацию отправки формы/запроса от пользователя, позволяет избежать атаки CSRF ModuleSecurity
ValidateSessionKey() Проверяет наличие security-ключа в сессии ModuleSecurity
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля Module
__construct() При создании модуля передаем объект ядра Module
isInit() Возвращает значение флага инициализации модуля Module

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
GenerateSessionKey() Генерирует текущий security-ключ ModuleSecurity
__clone() Блокируем копирование/клонирование объекта Module

Method Details

GenerateSessionKey() method
protected string GenerateSessionKey()
{return} string
Source Code: /engine/modules/security/Security.class.php#90 (show)
protected function GenerateSessionKey() {
    return 
md5($this->Session_GetId().Config::Get('module.security.hash'));
}

Генерирует текущий security-ключ

Init() method
public void Init()
Source Code: /engine/modules/security/Security.class.php#37 (show)
public function Init() {

}

Инициализируем модуль

SetSessionKey() method
public string SetSessionKey()
{return} string
Source Code: /engine/modules/security/Security.class.php#79 (show)
public function SetSessionKey() {
    
$sCode $this->GenerateSessionKey();
    
$this->Viewer_Assign('LIVESTREET_SECURITY_KEY',$sCode);

    return 
$sCode;
}

Устанавливает security-ключ в сессию

Shutdown() method
public void Shutdown()
Source Code: /engine/modules/security/Security.class.php#96 (show)
public function Shutdown() {
    
$this->SetSessionKey();
}

Завершение модуля

ValidateReferal() method
public bool ValidateReferal()
{return} bool
Source Code: /engine/modules/security/Security.class.php#53 (show)
public function ValidateReferal() {
    if (isset(
$_SERVER['HTTP_REFERER'])) {
        
$aUrl=parse_url($_SERVER['HTTP_REFERER']);
        if (
strcasecmp($aUrl['host'],$_SERVER['HTTP_HOST'])==0) {
            return 
true;
        } elseif (
preg_match("/\.".quotemeta($_SERVER['HTTP_HOST'])."$/i",$aUrl['host'])) {
            return 
true;
        }
    }
    return 
false;
}

Проверка на соотвествие реферала

ValidateSendForm() method
public void ValidateSendForm()
Source Code: /engine/modules/security/Security.class.php#43 (show)
public function ValidateSendForm() {
    if (!(
$this->ValidateSessionKey())) {
        die(
"Hacking attemp!");
    }
}

Производит валидацию отправки формы/запроса от пользователя, позволяет избежать атаки CSRF

ValidateSessionKey() method
public bool ValidateSessionKey(null|string $sCode=NULL)
$sCode null|string Код для проверки, если нет то берется из реквеста
{return} bool
Source Code: /engine/modules/security/Security.class.php#70 (show)
public function ValidateSessionKey($sCode=null) {
    if(!
$sCode$sCode=getRequest('security_ls_key');
    return (
$sCode==$this->GenerateSessionKey());
}

Проверяет наличие security-ключа в сессии