CMS на PHP
Выпуск 1

Фильтрация $_GET и $_POST

Продолжаем разрабатывать свою систему управления на PHP. Создаём новый класс для фильтрации $_GET и $_POST данных для защиты от межсайтового скриптинга (XSS), SQL-инъекций. Будем использовать filter_input, filter_var_array, filter_input_array, и свою функцию очистки

Продолжаем наши видеоуроки по созданию системы управления и сегодня мы сделаем класс для фильтрации $_GET и $_POST данных. В прошлом уроке мы остановились на том, что мы создали два класса: Database и Core. Мы получили данные из базы данных и на этом остановились. Сейчас мы продолжаем, добавим еще один класс который позволит нам перейти на следующий уровень и создать окно входа и выхода пользователя, чтобы мы получали с нашей формы очищенные данные. Это нужно для того чтобы при каких-то атаках на сайт при отправке данных нам через форму через поля не поступали какие-то лишние теги, скрипты и подобный вредоносный код. Мы должны получать только чистые валидные данные, которые нам нужны в данном случае для авторизации. Потом у нас будут поля для отправки формы обратной связи, для отправки корзины, там все тоже должно быть правильно и чисто. Сегодня продолжаем и пишем дополнительный класс.


class Input{

	public function secure($val){
	  return (is_array($val)) ? array_map(array($this, 'secure'),$val) : htmlspecialchars($val, ENT_COMPAT, 'UTF-8');
	}

	public function get($key=''){
		if(!empty($key)){
			if(is_array($_GET[$key])){
				$array = $this->secure($_GET[$key]);
				return filter_var_array($array, FILTER_SANITIZE_STRING);
			}else{
				return $this->secure(filter_input(INPUT_GET, $key));
			}
		}else{

		  $values = [];
	    foreach($_GET as $key => $value){
	      $values["$key"] = $this->secure(filter_input(INPUT_GET, $key));
	    }
    	return $values;
    }
	}

	public function post($key=''){
		if(@is_array($_POST[$key]) or empty($key)){
			if(empty($key)){$array = $_POST;}
			else{$array = $_POST[$key];}
			$array = filter_var_array($array, FILTER_SANITIZE_STRING);
			return $array;
		}else{
			$val = $this->secure(filter_input(INPUT_POST, $key));
			return $val;
		}
	}
}

Всё класс наш готов. В следующем видео мы начнем создавать страницу входа и выхода администратора.

Лучший хостинг для вашего сайта

Используем для всех своих проектов, советуем и вам.
Обращайтесь, перенесём сайт на Beget.

Icon