Защита нашего блога

 

Доброго времени суток дорогой читатель Блога RS! Сегодня мы обработаем пару переменных чрез которые, чисто технически, можно навредить нашему блогу. Я не буду вдаваться в подробности, как именно навредить, но Вы должны осознавать, что любое поле, через которое можно повлиять на блог, потенциальная опасное поле. К таким полям можно отнести адресную строку браузера, и формы расположенные на сайте/блоге.

 

 

Для новых читателей блога

 

Это сообщение направленно на информирование читателя который в первые на блоге. Этот пост, как и большинство на моем блоге, продолжение цикла статей, посвященному разработки блога с нуля, поэтому чтение только этого поста может НЕ дать Вам никакой ценной информации. Разработка этого проекта, ведется с целью показать как на php можно создать свой блог. По сути это небольшой учебник, где на практике можно освоить работу с языком программирования. Если Вам интересно на практике освоить начальный уровень программирования, то Добро пожаловать!. Если вы не хотите пропускать новые посты на данном блоге, то подпишитесь на RSS канал блога через ридер, или же по почте.

 

Немного теории

 

Введенная информация через форму, уже подвергается проверки на html код. Так же наш обработчик удаляет потенциально опасную кавычку " ' ", таких мероприятий вполне достаточно, что бы уберечь наш блог от опасности.

Что касается адресной строки, то вот тут мы ничего не предпринимали. По сути переменная которая создается через GET запрос в данный момент может содержать любые данные. Даже те которые могут повлиять на работоспособность нашего движка. Поэтому сегодня мы с Вами обезопасим эти переменные создаваемые через GET запрос.

Я уже показывал Вам пример проверки переменных. Суть защиты следующая. У нас в пользовательской части есть три GET переменные которые нуждаются в проверке. Это пожалуй единственные переменные в нашем движке, поэтому пост будет не большим .

  • Переменная blog. Как нам известно она содержать может только целое число, и ничего больше. Поэтому мы создадим условие, проверим, с помощью регулярного выражения, целое ли число в переменной, не соблюдение которого приведет к принудительной загрузки главной страницы блога.
  • Следующая переменная contact. Она может содержать только два числа. 1 или 2. Напишем регулярное выражение позволяющее продолжить работу скрипта, только при условие если в переменной contact содержится допустимые числа.
  • Последняя переменная, это $cat. Она как и переменная blog может содержать лишь целое число.

Приступим к реализации.

 

Проверяем GET переменные

 

Открываем пользовательский ( в корне блога ) index.php и правим там объявление GET переменных

 

>GET переменная blog

 

//GET ПЕРЕМЕННАЯ blog
if(isset($_GET['blog']))
{
$blog = $_GET['blog'];
if(!preg_match("/^[0-9]+$/",$blog))
{
header("location: index.php");
exit;
}
}
//GET ПЕРЕМЕННАЯ blog

Регулярное выражение проверяет наличие только числа, если в переменную поместить какой нить символ или букву, то нас перенесет на главную страницу.

 

>GET переменная contact

 

//GET ПЕРЕМЕННАЯ contact
if(isset($_GET['contact']))
{
$contact = $_GET['contact'];
if(!preg_match("/^[1-2]?$/",$contact))
{
header("location: index.php");
exit;
}
}
//GET ПЕРЕМЕННАЯ contact

Это регулярное выражение отсеивает все значение переменной, кроме тех случаев когда переменная будет равняться единице или двум.

 

>GET переменная cat

 

//GET ПЕРЕМЕННАЯ cat
if(isset($_GET['cat']))
{
$cat = $_GET['cat'];
if(!preg_match("/^[0-9]+$/",$cat))
{
header("location: index.php");
exit;
}
}
//GET ПЕРЕМЕННАЯ cat

Тут регулярное выражение такое же как и в случае с объявлением переменной blog, по этому без комментариев

 

Заключение

 

Теперь наш блог имеет более менее реальную защиту от нежелательных проблем

В следующем посте мы начнем работать с формой комментариев. Нам нужно будет придумать защиту от спама, и плюс ко всему немного переделать визуальность модуля.

Если Вам понравился пост и блог в целом, то подпишитесь на RSS канал блога через ридер, или же по почте.

Если есть, что сказать, пользуйтесь формой ниже

Удачи Вам! На сегодня у меня все!

Исходник
 

Возможно Вам будут интересны следующие заметки

Комментарии (1)

Ваше имя *
Сайт
Ваш E-mail *
Ваше сообщение *
 
Viktor, 24 Января 2012 г. 18:06 пишет:
Гость
Алексей, где Ты нашел такую оригинальную капчу в виде лексем,
опять придумал сам ?
Интересный материал, особенно для тех блоггеров, которые
совсем недавно еле еле отошли от спамерной атаки.
Твой постоянный читатель Пыхтелкин.