Класс Phalcon\Security

Реализует Phalcon\Di\InjectionAwareInterface

Source on GitHub

Этот компонент предоставляет набор функций для повышения безопасности в приложениях Phalcon

<?php

$login    = $this->request->getPost("login");
$password = $this->request->getPost("password");

$user = Users::findFirstByLogin($login);

if ($user) {
    if ($this->security->checkHash($password, $user->password)) {
        // Пароль действителен
    }
}

Константы

const CRYPT_BLOWFISH = 4;
const CRYPT_BLOWFISH_A = 5;
const CRYPT_BLOWFISH_X = 6;
const CRYPT_BLOWFISH_Y = 7;
const CRYPT_DEFAULT = 0;
const CRYPT_EXT_DES = 2;
const CRYPT_MD5 = 3;
const CRYPT_SHA256 = 8;
const CRYPT_SHA512 = 9;
const CRYPT_STD_DES = 1;

Свойства

/**
 * @var int|null
 */
protected defaultHash;

/**
 * @var int
 */
protected numberBytes = 16;

/**
 * @var Random
 */
protected random;

/**
 * @var string}null
 */
protected requestToken;

/**
 * @var string|null
 */
protected token;

/**
 * @var string|null
 */
protected tokenKey;

/**
 * @var string
 */
protected tokenKeySessionId = $PHALCON/CSRF/KEY$;

/**
 * @var string
 */
protected tokenValueSessionId = $PHALCON/CSRF$;

/**
 * @var int
 */
protected workFactor = 10;

/**
 * @var SessionInterface|null
 */
private localSession;

/**
 * @var RequestInterface|null
 */
private localRequest;

Методы

public function __construct( SessionInterface $session = null, RequestInterface $request = null );

Phalcon\Security конструктор

public function checkHash( string $password, string $passwordHash, int $maxPassLength = int ): bool;

Проверяет обычный текстовый пароль и его хэш-версию, чтобы проверить, соответствует ли пароль

public function checkToken( mixed $tokenKey = null, mixed $tokenValue = null, bool $destroyIfValid = bool ): bool;

Проверяет совпадает ли токен CSRF, отправленный в запросе, с текущим сеансом

public function computeHmac( string $data, string $key, string $algo, bool $raw = bool ): string;

Вычисляет HMAC

public function destroyToken(): Security;

Удаляет значение токена CSRF и ключа из сеанса

public function getDefaultHash(): int | null;

Возвращает хэш по умолчанию

public function getRandom(): Random;

Возвращает защищенный экземпляр генератора случайных чисел

public function getRandomBytes(): int;

Возвращает число байтов, генерируемых псевдо-случайным генератором openssl

public function getRequestToken(): string | null;

Возвращает значение токена CSRF для текущего запроса.

public function getSaltBytes( int $numberBytes = int ): string;

Сгенерируйте псевдослучайную строку длиной >22, которая будет использоваться в качестве соли для паролей

public function getSessionToken(): string | null;

Возвращает значение токена CSRF в сеансе

public function getToken(): string;

Генерирует псевдослучайное значение токена, которое будет использоваться в качестве входного значения при проверке CSRF

public function getTokenKey(): string;

Генерирует псевдослучайный ключ токена, который будет использоваться в качестве имени ввода в проверке CSRF

public function getWorkFactor(): int

Получает коэффициент работы

public function hash( string $password, int $workFactor = int ): string;

Создает хэш пароля с помощью bcrypt с псевдослучайной солью

public function isLegacyHash( string $passwordHash ): bool;

Проверяет, является ли хэш пароля действительным хэшем bcrypt

public function setDefaultHash( int $defaultHash ): Security;

Устанавливает хэш по умолчанию

public function setRandomBytes( int $randomBytes ): Security;

Задает число байтов, генерируемых псевдо-случайным генератором openssl

public function setWorkFactor( int $workFactor ): Security;

Устанавливает коэффициент работы