View file application/system/library/class.csrf.php

File size: 756B
<?PHP
	class CSRF {
		/*
			Создаем Токен
		*/
		public function __construct() {
			if(empty($_SESSION['csrf_token'])) {
				$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
			}
		}
		
		/*
			Получаем Токен
		*/
		public function Get() {
			if(isset($_SESSION['csrf_token'])) {
				return $_SESSION['csrf_token'];
			}
			
			return null;
		}
		
		/*
			Проверяем наличие Токена
		*/
		public function Is($token) {
			return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
		}
		
		/*
			Очищаем токен
		*/
		public function Clear() {
			if(isset($_SESSION['csrf_token'])) {
				unset($_SESSION['csrf_token']);
			}
		}
	}