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
Property | Type | Description | Defined By |
---|---|---|---|
bIsInit | bool | Указывает на то, была ли проведенна инициализация модуля | Module |
oEngine | Engine | Объект ядра | Module |
Public Methods
Method | Description | Defined 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
Method | Description | Defined 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-ключа в сессии