Скажите, он правильно сделан? У меня работает, но я не проверял что будет если несколько пользователей будут одновременно работать.
<body>
<?
session_start();
if (isset($username) && isset($passwd)){
connection();
$result = mysql_query("select * from users where username='”. mysql_real_escape_string($username).”' and passwd=md5('$passwd')");
if (mysql_num_rows($result)>0 ){
$_SESSION['valid_user'] = $username; } // это ключевое присвоение
}
if (isset($_SESSION['valid_user'])){ // а тут проверка
echo '<br>Добро пожаловать на сайт';
echo ' <a href="menu.php">Войти в главное меню</a><br/>';
}
else{
<form>..ввод логина и пароля..</form>
}
?>
</body>
</html>
////////ВСЕ ПРОЧИЕ СТРАНИЦЫ
<body>
<?
if (isset($_SESSION['valid_user'])){
//тело страницы
}
else{
echo '<br>Ошибка. Введите имя пользователя и пароль';
<form>..ввод логина и пароля..</form>
}
?>
</body>
Спустя 1 минута, 58 секунд (13.08.2010 - 14:41) Lenarfate написал(а):
ну для первого этапа создания модуля регистрации нормально.
Спустя 1 минута, 32 секунды (13.08.2010 - 14:42) DedMorozzz написал(а):
Цитата |
and passwd=md5('$passwd')"); |
это не будет. Выдели пасс как и с именем юзера сделал. Т.е. пхп код и проканкатенировать (соединить).
Спустя 9 минут, 11 секунд (13.08.2010 - 14:51) maximka787 написал(а):
Вот так наверно лучше, ты про это писал?
$username = mysql_real_escape_string($username);
$passwd = mysql_real_escape_string($passwd);
$result = mysql_query("select * from users where username='”. $username.”' and passwd=md5('$passwd')");
$username = mysql_real_escape_string($username);
$passwd = mysql_real_escape_string($passwd);
$result = mysql_query("select * from users where username='”. $username.”' and passwd=md5('$passwd')");
Спустя 39 минут, 17 секунд (13.08.2010 - 15:31) Guest написал(а):
Ты, наверное, понимаешь, что скрипт сделан тока на 5 процентов.. Там ещё ой как много надо сделать, стока проверок... Учи, читай
Спустя 7 минут, 22 секунды (13.08.2010 - 15:38) maximka787 написал(а):
Цитата (Guest @ 13.08.2010 - 12:31) |
Ты, наверное, понимаешь, что скрипт сделан тока на 5 процентов.. Там ещё ой как много надо сделать, стока проверок... Учи, читай |
тут реализован только сам механизм, и защита от инъекций, остальное я не стал выкладывать, тк и так все понятно. Главное проверить сам механизм.
а конкретно чтобы небыло проблем у нескольких юзеров сидящих одновременно за сайтом, ну и с точки зрения безопасности. тк у меня в прошлом скрипте каждаю страница вызывала session_start и каждый раз обращалась к базе чтобы зарегить юзера.
Сейчас как только получена $_SESSION['valid_user'], на всех страницах идет только проверка
if (isset($_SESSION['valid_user'])){
//тело страницы
}
если это безопасно в принципе, то я буду рад, или скажите свое мнение.
Спустя 2 минуты, 25 секунд (13.08.2010 - 15:40) DedMorozzz написал(а):
нет, я говорил о ином. Выглядеть строка должна не так:
Цитата |
$result = mysql_query("select * from users where username='”. mysql_real_escape_string($username).”' and passwd=md5('$passwd')"); |
А вот так:
$result = mysql_query("select * from users where username='”. mysql_real_escape_string($username).”' and passwd='".md5('$passwd')."'");
Спустя 24 минуты, 46 секунд (13.08.2010 - 16:05) Guest написал(а):
Где защита от инъекций?
Спустя 1 минута, 6 секунд (13.08.2010 - 16:06) maximka787 написал(а):
Цитата (Guest @ 13.08.2010 - 13:05) |
Где защита от инъекций? |
Тут уже решено.
$result = mysql_query("select * from users where username='”. mysql_real_escape_string($username).”' and passwd='".md5('$passwd')."'");
акцент на грамотность авторизации.
Спустя 6 минут, 45 секунд (13.08.2010 - 16:13) maximka787 написал(а):
А сейчас прочитал про то чтоб в каждом скрипте обязательно была
session_start();
посмотрите пожалуйста код в самом верху. мне просто надо понять этот небольшой момент.
session_start();
посмотрите пожалуйста код в самом верху. мне просто надо понять этот небольшой момент.
Спустя 43 минуты, 33 секунды (13.08.2010 - 16:56) Guest написал(а):
session_start() должна стоять в самом начале твоей страницы, пока ты ничего в браузер не вывел, иначе ничего не будет, а на каждой странице, где требуется авторизация
Спустя 1 день, 17 часов, 32 минуты, 4 секунды (15.08.2010 - 10:29) maximka787 написал(а):
Такой вопрос.
1. Правильно ли я всетаки вставляю в начало php!! кода session_start();
<html><head>....</head>
<body>
<?
session_start();
....
?>
</body></html>
2. Сейчас я добавил session_start(); только на страницу регистрации сессионной переменой. На всех остальных страницах пока нет, но сделаю щас. Только вопрос, если все и так работает это может быть уязвимость какая нибудь? (если что код в самом верху темы)
1. Правильно ли я всетаки вставляю в начало php!! кода session_start();
<html><head>....</head>
<body>
<?
session_start();
....
?>
</body></html>
2. Сейчас я добавил session_start(); только на страницу регистрации сессионной переменой. На всех остальных страницах пока нет, но сделаю щас. Только вопрос, если все и так работает это может быть уязвимость какая нибудь? (если что код в самом верху темы)
Спустя 2 минуты, 2 секунды (15.08.2010 - 10:31) linker написал(а):
maximka787
Давайте мы уже научимся оформлять код (соответствующими bb-кодами) как положено.
Давайте мы уже научимся оформлять код (соответствующими bb-кодами) как положено.
Спустя 22 минуты, 54 секунды (15.08.2010 - 10:53) maximka787 написал(а):
Хорошо, учту)
Спустя 8 часов, 55 минут, 43 секунды (15.08.2010 - 19:49) maximka787 написал(а):
Цитата (maximka787 @ 15.08.2010 - 07:29) |
Такой вопрос. 1. Правильно ли я всетаки вставляю в начало php!! кода session_start(); <html><head>....</head> <body> <? session_start(); .... ?> </body></html> 2. Сейчас я добавил session_start(); только на страницу регистрации сессионной переменой. На всех остальных страницах пока нет, но сделаю щас. Только вопрос, если все и так работает это может быть уязвимость какая нибудь? (если что код в самом верху темы) |
а, по поводу этого есть мнение?
Спустя 9 дней, 3 часа, 15 минут, 19 секунд (24.08.2010 - 23:04) maximka787 написал(а):
Ребя скажите а в целях безопасности надо на каждой странце требующей авторизации проверять каждый раз логин и пароль?
или достаточно
это очень важно, мне один раз только объясните)
или достаточно
if (isset($_SESSION['valid_user'])){
//тело страницы
}
else{
echo '<br>Ошибка. Введите имя пользователя и пароль';
<form>..ввод логина и пароля..</form>
}
это очень важно, мне один раз только объясните)
Спустя 1 час, 13 минут, 58 секунд (25.08.2010 - 00:18) Rivalryzerg написал(а):
maximka787, достаточно просто проверять установленную переменную в $_SESSION.
Удаленный пользователь не может изменить значение этого массива, если только на сайте нет уязвимостей.
На всякий случай: главное не забыть session_start() до работы с $_SESSION )
Удаленный пользователь не может изменить значение этого массива, если только на сайте нет уязвимостей.
На всякий случай: главное не забыть session_start() до работы с $_SESSION )
Спустя 12 дней, 12 часов, 6 минут, 25 секунд (7.09.2010 - 12:25) Timonovsky написал(а):
А не могли бы подсказать, как реализовать что бы авторизированные пользователи подсвечивались, в момент когда они на сайте. Устанавливать сессию в true?И записывать ее в друную ьтаблицу какую-нить?
_____________
..Работает - не трогай!