Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Информационный Канал Subscribe.Ru

Здравствуйте! Выпуск номер 74
рассылки сайта РНР для всех!

Форум сайта / Сайт автора

Важная информация:

  • Сайт, который представляет всю информацию о нужном для вас хостинге - http://bel-host.info (от 5 у.е. за год включая панель управления + все, что необходимо для работы сайта + поддержка, все кроме места и трафика неограничено!). Регистрация доменов по низким ценам.

  • Если вас интересует возможность быстрой разработки скриптов и приложений для сети Интернет под ваши нужды, или вам необходима помощь специалиста в поддержке и развитии собственных систем (сайтов, страничек и т.д.), пишите на адрес: virtualphp@tut.by - с темой "разработка".

  • По поводу размещения информации в этой рассылке обращайтесь на адрес: virtualphp@tut.by

Предохраняйся с помощью сессий. Продолжение...

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

 

..так, или примерно так начиналась статья в предыдущей рассылке. Ну что-ж, если я так пишу, то уверен на 100% что рекция будет примерно следущей: (цитата из письма)

Здравствуйте.

Уважаемый, извини за не скромный вопрос, а ты сколько времени
программированием на PHP занимаешься? Ты пишешь о способе защиты
сайта с помощью сессий и говоришь, что это надежно и ты не знаешь,
как это поломать. Так я тебе расскажу. Точно до деталей описывать
не буду, так как лень грузить на сервак твои сырцы. Расскажу
теорию. Принцип поймешь, попробуешь сам.

И так далее, и так потом. Но, господа, вы забываете, что еще в прошлом выпуске я предупредил вас, что некоторое время вы сможете читать на страницах моей рассылки информацию другого автора.  Это первое. Он, кстати, честно предупреждает, что способов обойти его защиту он не знает, мы честно ответим - вот они: (цитаты из писем)

1. При автоизации в поле логина вставляем что-то типа "' OR
hello=1". В результате получим предупреждение об отсутствии поля
hello в таблице пользователей. А это потому, что ты не закрыл эхо в
функции mysql_query(). В сообщении будет указано название таблицы.
2. В строке логина вводим "'; DROP TABLE имя_таблицы".

На сайт мы не зашли, но таблицы акаунтов больше нет. Эта кухня
называется MySQL-injection. О таких вещах надо знать. Ты бы хоть
эхо закрыл, да на логин/пароль AddSlashes() сделал.

При желании можно узнать наименования полей логина и пароля. А
тогда можно добывить хоть тысячу пользователей. И твое счастье,
если на серваке REGISTER_GLOBALS не будет включен. А иначе поимеют
тебя в течении получаса.
 

Вот еще цитата, более дружелюбная, слава Богу, таких было большинство...:

Здравствуйте Андрей Кухарчик.
Пишет вам один из ваших подписчиков.
Последнее время я увлекаюсь безопасностью в PHP. И я хотел бы
объяснить как злоумышленик может пройти на сайт где стоит ваша
защита.
Вот код вашей функции.
Function check()
{
if (empty($pass)||empty($name))
error("Не указан логин или пароль");
$sql="select * from my_site where login='".$name."'";//Сдесь возможно
//сделать MySQL-injection
if ($show=mysql_query($sql))
{
$a=mysql_fetch_array($show);
if ($a['pass']!=$pass)
error("Не верное сочетание логин - пароль");
else
session_register("name","pass");
}
else
error("Ошибка запроса к базе данных");
}
Если "хакер" введет в имени пользователя
xxx' and 1=0 union select 'pass'/*
А в поле пароля напишет pass. То система впистит его на сайт.
Т.к. запрос преобразуется в такой
select * from my_site where login='xxx' and 1=0 union select 'pass'/*'
1=0 нужно для того, чтобы первый результат не вернул результата,
а /* - это коментарий, чтобы отсечь остаток запроса.
Чтобы этого не было нужно обрабатывать переменную $name функцией
mysql_escape_string.
Однако,хотел бы отметить что эта атака удастся только там, где
выключен gpc_magic_quotes, но таких серверов в интернете довольно
много.

Что-ж, всем спасибо, все свободны. Хочу сказать только одно - в любой ситуации надо оставаться человеком, и не набрасываться зря на людей. И уж тем более не мнить себя суперпрограммистом всех времен и народов. Никто не спорит, что статья не отвечала всем требованиям безопасности, однако она с успехом демонстрирует работу работу сессий и дает пример работы с базой данных, а уж дальнейшее обеспечение безопасности - дело техники, и конечно, все сразу охватить было бы просто сложно и непонятно для тех, кто пытается освоить самые азы в PHP.
Давайте помогать им, а не пугать...

И скажем спасибо Василию Котову за интересный и познавательный материал. (в следующий раз пусть не забывает подписывать свои материалы своим именем)

Наши проекты

http://virtual.brest.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://bel-host.info - хостинг по самым маленьким ценам - от 5 у.е. за 1 год! Ограничены только место и трафик, все остальное в любых количествах!
http://204040.com - Интернет-магазин компьютерного салона Успех г. Брест

автор рассылки Андрей Кухарчик / http://php.virtualbrest.com


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: inet.webbuild.php3programm
Отписаться

В избранное