Класс EncryptedCookieMiddleware
Средство для шифрования и дешифрования куки.
Этот промежуточный слой будет шифровать/дешифровать куки с заданным ключом и типом шифра. Для поддержки нескольких ключей/типов шифров используйте этот промежуточный слой несколько раз.
Куки в данных запроса будут дешифроваться, а куки в заголовках ответа будут шифроваться автоматически. Если ответ — Cake\Http\Response, данные куки, заданные с withCookie() и `cookie()`, также будут зашифрованы.
Типы шифрования и дополнения совместимы с теми, которые используются CookieComponent для обратной совместимости.
- Cake\Http\Middleware\EncryptedCookieMiddleware использует Cake\Utility\CookieCryptTrait
Краткое описание свойств
-
$cipherTypeprotectedТип шифрования.string -
$cookieNamesprotectedСписок куки для шифрования/дешифрованияarray -
$keyprotectedКлюч шифрования для использования.string
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор
- __invoke() publicПрименение шифрования/дешифрования куки.
- _getCookieEncryptionKey() protectedПолучение ключа шифрования куки.
- decodeCookies() protectedДекодирование куки из запроса.
- encodeCookies() protectedКодирование куки из CookieCollection ответа.
- encodeSetCookieHeader() protectedКодирование куки из заголовка Set-Cookie ответа
Подробное описание методов
__construct()source public
__construct( array $cookieNames , string $key , string $cipherType 'aes' )
Конструктор
Параметры
- массив
$cookieNames - Список имён куки, значения которых должны быть зашифрованы.
- строка
$key - Ключ шифрования для использования.
- строка
$cipherTypeoptional 'aes' Тип шифра для использования. По умолчанию 'aes', но также может быть 'rijndael' для обратной совместимости.
__invoke()source public
__invoke( Psr\Http\Message\ServerRequestInterface $request , Psr\Http\Message\ResponseInterface $response , callable $next )
Применение шифрования/дешифрования куки.
Параметры
- Psr\Http\Message\ServerRequestInterface
$request - Запрос.
- Psr\Http\Message\ResponseInterface
$response - Ответ.
- вызываемый объект
$next - Следующий промежуточный слой для вызова.
Возвращает
Psr\Http\Message\ResponseInterfaceОтвет.
_getCookieEncryptionKey()source protected
_getCookieEncryptionKey( )
Получение ключа шифрования куки.
Часть реализации CookieCryptTrait.
Возвращает
строкаdecodeCookies()source protected
decodeCookies( Psr\Http\Message\ServerRequestInterface $request )
Декодирование куки из запроса.
Параметры
- Psr\Http\Message\ServerRequestInterface
$request - Запрос для декодирования куки.
Возвращает
Psr\Http\Message\ServerRequestInterfaceОбновлённый запрос с декодированными куки.
encodeCookies()source protected
encodeCookies( Cake\Http\Response $response )
Кодирование куки из CookieCollection ответа.
Параметры
-
Cake\Http\Response$response - Ответ для кодирования куки в нём.
Возвращает
Cake\Http\ResponseОбновлённый ответ с закодированными куки.
encodeSetCookieHeader()source protected
encodeSetCookieHeader( Psr\Http\Message\ResponseInterface $response )
Кодирование куки из заголовка Set-Cookie ответа
Параметры
- Psr\Http\Message\ResponseInterface
$response - Ответ для кодирования куки в нём.
Возвращает
Psr\Http\Message\ResponseInterfaceОбновлённый ответ с закодированными куки.
Методы, используемые из Cake\Utility\CookieCryptTrait
_checkCipher()source protected
_checkCipher( string $encrypt )
Вспомогательный метод для проверки имён шифров шифрования.
Параметры
- строка
$encrypt - Имя шифра.
Выбрасывает
RuntimeExceptionПри предоставлении недопустимого шифра.
_decode()source protected
_decode( string $value , string|false $encrypt , string|null $key )
Декодирует и дешифрует одно значение.
Параметры
- строка
$value - Значение для декодирования и дешифрования.
- строка|ложь
$encrypt - Используемый шифр шифрования.
- строка|null
$key - Используется в качестве защитного соли, если указано.
Возвращает
строка|массивДекодированные значения.
_decrypt()source protected
_decrypt( array $values , string|boolean $mode , string|null $key null )
Дешифрует $value, используя метод public $type в классе Security
Параметры
- массив
$values - Значения для дешифрования
- строка|булево
$mode - Режим шифрования
- строка|null
$keyoptional null - Используется в качестве защитного соли, если указано.
Возвращает
строка|массивДешифрованные значения
_encrypt()source protected
_encrypt( string $value , string|boolean $encrypt , string|null $key null )
Шифрует $value, используя метод public $type в классе Security
Параметры
- строка
$value - Значение для шифрования
- строка|булево
$encrypt Использовать режим шифрования. False — отключает шифрование.
- строка|null
$keyoptional null - Используется в качестве защитного соли, если указано.
Возвращает
строкаЗашифрованные значения
_explode()source protected
_explode( string $string )
Метод explode для возврата массива из строки, установленной в CookieComponent::_implode(). Сохраняет обратную совместимость с чтением со стороны 1.x CookieComponent::_implode().
Параметры
- строка
$string - Строка, содержащая JSON-закодированные данные или просто строка.
Возвращает
строка|массивКарта ключа и значений
_implode()source protected
_implode( array $array )
Метод implode для сохранения ключей как многомерных массивов.
Параметры
- массив
$array - Карта ключа и значений
Возвращает
строкаJSON-закодированная строка.
Подробное описание свойств
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Http.Middleware.EncryptedCookieMiddleware.html