Доброго времени суток дорогой читатель Блога RS! Сегодня мы обработаем пару переменных чрез которые, чисто технически, можно навредить нашему блогу. Я не буду вдаваться в подробности, как именно навредить, но Вы должны осознавать, что любое поле, через которое можно повлиять на блог, потенциальная опасное поле. К таким полям можно отнести адресную строку браузера, и формы расположенные на сайте/блоге.
Это сообщение направленно на информирование читателя который в первые на блоге. Этот пост, как и большинство на моем блоге, продолжение цикла статей, посвященному разработки блога с нуля, поэтому чтение только этого поста может НЕ дать Вам никакой ценной информации. Разработка этого проекта, ведется с целью показать как на php можно создать свой блог. По сути это небольшой учебник, где на практике можно освоить работу с языком программирования. Если Вам интересно на практике освоить начальный уровень программирования, то Добро пожаловать!. Если вы не хотите пропускать новые посты на данном блоге, то подпишитесь на RSS канал блога через ридер, или же по почте.
Введенная информация через форму, уже подвергается проверки на html код. Так же наш обработчик удаляет потенциально опасную кавычку " ' ", таких мероприятий вполне достаточно, что бы уберечь наш блог от опасности.
Что касается адресной строки, то вот тут мы ничего не предпринимали. По сути переменная которая создается через GET запрос в данный момент может содержать любые данные. Даже те которые могут повлиять на работоспособность нашего движка. Поэтому сегодня мы с Вами обезопасим эти переменные создаваемые через GET запрос.
Я уже показывал Вам пример проверки переменных. Суть защиты следующая. У нас в пользовательской части есть три GET переменные которые нуждаются в проверке. Это пожалуй единственные переменные в нашем движке, поэтому пост будет не большим .
Приступим к реализации.
Открываем пользовательский ( в корне блога ) index.php и правим там объявление GET переменных
//GET ПЕРЕМЕННАЯ blog
if(isset($_GET['blog']))
{
$blog = $_GET['blog'];
if(!preg_match("/^[0-9]+$/",$blog))
{
header("location: index.php");
exit;
}
}
//GET ПЕРЕМЕННАЯ blog
Регулярное выражение проверяет наличие только числа, если в переменную поместить какой нить символ или букву, то нас перенесет на главную страницу.
//GET ПЕРЕМЕННАЯ contact
if(isset($_GET['contact']))
{
$contact = $_GET['contact'];
if(!preg_match("/^[1-2]?$/",$contact))
{
header("location: index.php");
exit;
}
}
//GET ПЕРЕМЕННАЯ contact
Это регулярное выражение отсеивает все значение переменной, кроме тех случаев когда переменная будет равняться единице или двум.
//GET ПЕРЕМЕННАЯ cat
if(isset($_GET['cat']))
{
$cat = $_GET['cat'];
if(!preg_match("/^[0-9]+$/",$cat))
{
header("location: index.php");
exit;
}
}
//GET ПЕРЕМЕННАЯ cat
Тут регулярное выражение такое же как и в случае с объявлением переменной blog, по этому без комментариев
Теперь наш блог имеет более менее реальную защиту от нежелательных проблем
В следующем посте мы начнем работать с формой комментариев. Нам нужно будет придумать защиту от спама, и плюс ко всему немного переделать визуальность модуля.
Если Вам понравился пост и блог в целом, то подпишитесь на RSS канал блога через ридер, или же по почте.
Если есть, что сказать, пользуйтесь формой ниже
Удачи Вам! На сегодня у меня все!
Исходник |
опять придумал сам ?
Интересный материал, особенно для тех блоггеров, которые
совсем недавно еле еле отошли от спамерной атаки.
Твой постоянный читатель Пыхтелкин.