|
|
|
| Подскажите, про авторизации пользователя на сайте, стоит проверят на то, включены Cookie у пользователи или нет?
Если же не включены, придется имя пользователи и пароль передавать в командной строке? Это же отразится на безопасности | |
|
|
|
|
|
|
|
для: xpom
(26.09.2011 в 21:58)
| | Смотря для каких целей, иногда неплохо вывести пользователю сообщение о том, что cookie не подключены.
>Если же не включены, придется имя пользователи и пароль передавать в командной строке?
>Это же отразится на безопасности
Плохо, особенно, если такой URL будет проиндексирован. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2011 в 22:00)
| | для авторизации пользователи и дать ему совершать определенные действия под своими правами!
А если поставим проверку на роботов
if ($user != "Robot") {
session_start ();
}
|
и если робот, то сессия вообще не назначается! Так возможно?
и если мы будем каждый раз менять SID про совершении действия внутри сессии, так будет безопасно? | |
|
|
|
|
|
|
|
для: xpom
(26.09.2011 в 22:33)
| | Ну роботы сами не больно-то спешат сессию поддерживать, разве только спам-робот или что-то в этом духе, но они вообще страются не вести себя отлично от обычного пользователя.
Тут проблема даже не в роботах, а в URL, пользователь может забыться и дать ссылку на ваш ресурс вместе со своим логином и паролем, а поисковые роботы это разнесут на весь интернет. В общем передача конфиденциальной информации в GET-параметрах все-равно заведомо плохая идея. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2011 в 23:19)
| | Тут проблема даже не в роботах, а в URL, пользователь может забыться и дать ссылку на ваш ресурс вместе со своим логином и паролем, а поисковые роботы это разнесут на весь интернет. В общем передача конфиденциальной информации в GET-параметрах все-равно заведомо плохая идея.
Да согласен, не вариант, тогда лучше выводить предупреждение включит кукисы!
А как же быть с SID? Как сделать безопасную авторизацию? Ну например, сессия исчезает минут через 20 с сервера и пока сессия живет, злоумышленник может узнать SID и зайти под этим пользователем | |
|
|
|
|
|
|
|
для: cheops
(26.09.2011 в 23:19)
| | Тут проблема даже не в роботах, а в URL, пользователь может забыться и дать ссылку на ваш ресурс вместе со своим логином и паролем, а поисковые роботы это разнесут на весь интернет. В общем передача конфиденциальной информации в GET-параметрах все-равно заведомо плохая идея.
Да согласен, не вариант, тогда лучше выводить предупреждение включит кукисы!
А как же быть с SID? Как сделать безопасную авторизацию? Ну например, сессия исчезает минут через 20 с сервера и пока сессия живет, злоумышленник может узнать SID и зайти под этим пользователем | |
|
|
|
|
|
|
|
для: xpom
(26.09.2011 в 23:30)
| | А он через 20 минут уже не сможет зайти, так как сервер просто уничтожит все данные, которые принадлежали этой сессии. Т.е. обратиться он конечно к серверу может, но сервер будет себя вести так, как если бы массив $_SESSION был пуст. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2011 в 23:34)
| | т.е. ничего сверх естественного, обычная сессия и будет все безопасно? Ну и конечно пароль шифрованный в md5
но в этом случае пользователь открывший после 20 минут не сможет просто открыть. нужно будет все вводить заново...это будет наверное не совсем удобно для пользователя... | |
|
|
|
|
|
|
|
для: xpom
(27.09.2011 в 14:01)
| | Здесь имеется в виду 20 минут бездействия, т.е. пока он работает, сервер его помнит, если он отлучился или выключил браузер, через 20 минут, если от него не поступало новых запросов - сервер анулирует сессию. | |
|
|
|
|
|
|
|
для: cheops
(27.09.2011 в 17:25)
| | ну это я понял..а с безопасностью как в этом случае? | |
|
|
|
|
|
|
|
для: cheops
(27.09.2011 в 17:25)
| | ну это я понял..а с безопасностью как в этом случае? | |
|
|
|
|
|
|
|
для: cheops
(27.09.2011 в 17:25)
| | ну это я понял..а с безопасностью как в этом случае? | |
|
|
|
|
|
|
|
для: xpom
(27.09.2011 в 21:19)
| | Даже если у пользователя хватит ума потерять свой SID или если его украдут в результате XSS-инъекции, 20 минут слишком мало, чтобы что-то успеть. Учитывая, что XSS-инъекции где-попало не валяются, а пользователи не ходят по каким попало ссылкам, а наличие аккаунта - это не обязательно вероятность смены пароля (его обычно отправляют на e-mail пользователя), злоумышленник должен быть очень упорным и терпеливым. В настоящий момент в Web мало задач, которые бы окупили бы его бессонные ожидания (работать нужно не позднее 20 минут после срабатывания ловушки) - он больше потеряет, чем сможет заработать. | |
|
|
|
|
|
|
|
для: cheops
(27.09.2011 в 21:32)
| | а какими функциями лучше проверить ввод пароля и логина? | |
|
|
|
|
|
|
|
для: xpom
(27.09.2011 в 23:39)
| | Это зависит от того, какие требования к ним предъявляются и что вы хотите с ними делать после проверки, а главное как происходит эта проверка (непосредственное сравнение, включение их в SQL-запрос, что-то другое). | |
|
|
|
|
|
|
|
для: cheops
(28.09.2011 в 10:17)
| | да да включение их в SQL-запрос!
яя делаю авторизацию пользователя, вот думаю сделать проверку жива сессия или нет по SID, т.е. создаем сессию session_start(); потом берем с неё SID (только фот функцию выстаскивание IDсессии не помню) и заносим в базу к пользователю этот SID и в дальнейшем сравниваем, если эта SID, то поскаем пользователя, ведь SID каждый раз разные! Хорошо будет такой вариант работать? | |
|
|
|
|
|
|
|
для: xpom
(30.09.2011 в 18:55)
| | 1. При помещении данных в SQL-запрос целые числа лучше пропускать через фунцию intval()
<?php
$_GET['id'] = intval($_GET['id']);
?>
| Строки же лучше пропускать через функцию mysql_escape_string(), предварительно убедившись, что отключен режим магических кавычек
<?php
if (!get_magic_quotes_gpc())
{
$_GET['text'] = mysql_escape_string($_GET['text']);
}
?>
|
>Хорошо будет такой вариант работать?
Если последний SID только не будет похищен кем-то другим. Но попробовать можно, особенно, если на сайте нет XSS-инъекций. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2011 в 23:19)
| | Ну роботы сами не больно-то спешат сессию поддерживать
Яндекс называет себя сессионным поисковиком. Может, он вкладывает в это другой смысл, - не знаю. | |
|
|
|