Всем добрый день.
У меня вопрос по аутентификации.
У меня на сайте редактирование под паролем было написано просто:
сначала страница parol.php, где логин и пароль сравнивались с тем, что было в базе, затем создавались сессии пользователя:
session_start();
$_SESSION['username'] = $row[0];
$_SESSION['userpass'] = $row[1];
Где $row - строка из базы.
На следующих страницах шла проверка:
<?
session_start();
if(isset($_SESSION['username']))
{
echo "Здравствуйте, ".$_SESSION['username']."<br>";
?>
Мне сказали, что сессию можно инициализировать извне и зайти в редактирование без пароля. Вопрос: как? Сессия методом get не передаются.
Также сказали, что надо написать аутентификацию. Вероятно, да. Как это пишется? Что надо писать в странице parol.php и что на следующих?
Допустим, страницы называются menu.php и vvod.php - названия имеют значение?
И еще. Наш сисадмин "для надежности" удалил расширения и сказал, что страницы видятся прямо так, без пароля. Разумеется, ведь проверка сессии перестала работать. И сама страница тоже. По-моему, расширения надо вернуть. Я права?
Последний раз редактировалось notka 28.02.2007 14:15, всего редактировалось 1 раз.
Я обсуждаю не взлом, а защиту. Как правильно работать с сессиями? Как написать аутентификацию. Добавлено спустя 1 минуту, 56 секунд Я отредактировала пост. Пожулуйста, ответьте конкретно.
Спасибо. Пригодится. Только я в недоумении: если под сессию вообще можно зайти слева (как?!), то тогда и все сессии с другими проверками можно взломать, об этом даже прямо написано в указанной статье. Я могу проверять IP, но как быть для вариантов, когда под паролем работают любые зарегистрированные пользователи с разных компюьтеров.
В сессию можно зайти только по левой ссылке (если она передается через запрос GET), или недоброжелатель может стырить её номер (из кукисов, или перехватив пакеты запроса).
В данном случае можно защититься дополнительно, привязав IP адрес клиента к данной сессии (если пхп это не делает сам, вроде не делает) и установив минимальное время жизни сессии. Ну и https есессно
Или можно использовать аутентификацию на уровне http, об этом подробнее читать на httpd.apache.org (если вебсервер apache), или в документации по своему веб-серверу. Правда про надежность этой авторизации ничего сказать не могу...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения