Есть админка, её вход охраняет файлик lock.php, в котором прописана проверка логина и пароля (сравнение с записью в таблице MySQL), если все ок, то пропускает и наоборот.
Так вот проблема в том, что достаточно мне один раз правильно пароль ввести, и он почему-то больше не спрашивается при повторных обращениях к ../admin/index.php , а сразу заходит.
Это ж так нельзя, а вдруг придется заходить в админку с постороннего ПК..
ps:я думал что при закрытии браузера, lock.php должен вновь спрашивать логин и пароль, разве не так?
pps: можно ли средствами .htaccess как-то способствовать поставленной задаче (при каждом новом обращении к файлику ../admin/index.php спрашивать логин и пароль).
(да и данные входа я не кешировал)
Спустя 17 минут, 46 секунд (28.09.2010 - 12:18) Rand написал(а):
Обычно данные об авторизации хранятся в сессии. В браузер устанавливается кука с идетификатором сессии, которая по умолчанию должна удалятся после закрытия браузера. Если после закрытия/открытия браузера вы всё ешё авторизованны - значит кука не удалилась. Сложно говорить не видя скрипта.
Спустя 7 минут, 38 секунд (28.09.2010 - 12:25) inpost написал(а):
myconstitution
Ты знаком с Кукисами? Или lock.php ты просто скопипастил откуда-то?
Как ты думаешь, сколько видом "lock.php" мы видели за свою жизнь? Откуда мы можем знать, что именно там написано? =)
.htaccess тут не нужен! Нужно открывать файл lock.php и учебник по Cookie. Далее за пару часиков всё поймешь.
Ты знаком с Кукисами? Или lock.php ты просто скопипастил откуда-то?

Как ты думаешь, сколько видом "lock.php" мы видели за свою жизнь? Откуда мы можем знать, что именно там написано? =)
.htaccess тут не нужен! Нужно открывать файл lock.php и учебник по Cookie. Далее за пару часиков всё поймешь.
Спустя 42 минуты, 50 секунд (28.09.2010 - 13:08) myconstitution написал(а):
Вы правы, lock.php я взял именно готовый. Считал, что еще рано заниматься безопасностью (знаний мало было). Видимо настало время уделить этому время.
Если говорить о коде, то вот он на Ваш суд:
ps: что лучше при авторизации кукисы или создавать сессии?
Если говорить о коде, то вот он на Ваш суд:
#соединение с БД
include("blocks/db.php");
if (!isset($_SERVER['PHP_AUTH_USER']))
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
else
{
if (!get_magic_quotes_gpc())
{
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}
$query = "SELECT pass FROM users WHERE
login='".$_SERVER['PHP_AUTH_USER']."'";
$lst = @mysql_query($query);
if (!$lst)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
if (mysql_num_rows($lst) == 0)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
$pass = @mysql_fetch_array($lst);
if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
}
ps: что лучше при авторизации кукисы или создавать сессии?
Спустя 7 минут, 34 секунды (28.09.2010 - 13:16) vital написал(а):
Использовать оба. Тем более что при старте сессии, кукисы часто создаются сами(если так настроено).
Спустя 14 минут, 15 секунд (28.09.2010 - 13:30) inpost написал(а):