Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Стоит ли создавать проверку на Cookie?
 
 автор: xpom   (26.09.2011 в 21:58)   письмо автору
 
 

Подскажите, про авторизации пользователя на сайте, стоит проверят на то, включены Cookie у пользователи или нет?
Если же не включены, придется имя пользователи и пароль передавать в командной строке? Это же отразится на безопасности

  Ответить  
 
 автор: cheops   (26.09.2011 в 22:00)   письмо автору
 
   для: xpom   (26.09.2011 в 21:58)
 

Смотря для каких целей, иногда неплохо вывести пользователю сообщение о том, что cookie не подключены.

>Если же не включены, придется имя пользователи и пароль передавать в командной строке?
>Это же отразится на безопасности
Плохо, особенно, если такой URL будет проиндексирован.

  Ответить  
 
 автор: xpom   (26.09.2011 в 22:33)   письмо автору
 
   для: cheops   (26.09.2011 в 22:00)
 

для авторизации пользователи и дать ему совершать определенные действия под своими правами!
А если поставим проверку на роботов

if ($user != "Robot") {
    session_start ();
}

и если робот, то сессия вообще не назначается! Так возможно?
и если мы будем каждый раз менять SID про совершении действия внутри сессии, так будет безопасно?

  Ответить  
 
 автор: cheops   (26.09.2011 в 23:19)   письмо автору
 
   для: xpom   (26.09.2011 в 22:33)
 

Ну роботы сами не больно-то спешат сессию поддерживать, разве только спам-робот или что-то в этом духе, но они вообще страются не вести себя отлично от обычного пользователя.

Тут проблема даже не в роботах, а в URL, пользователь может забыться и дать ссылку на ваш ресурс вместе со своим логином и паролем, а поисковые роботы это разнесут на весь интернет. В общем передача конфиденциальной информации в GET-параметрах все-равно заведомо плохая идея.

  Ответить  
 
 автор: xpom   (26.09.2011 в 23:30)   письмо автору
 
   для: cheops   (26.09.2011 в 23:19)
 

Тут проблема даже не в роботах, а в URL, пользователь может забыться и дать ссылку на ваш ресурс вместе со своим логином и паролем, а поисковые роботы это разнесут на весь интернет. В общем передача конфиденциальной информации в GET-параметрах все-равно заведомо плохая идея.
Да согласен, не вариант, тогда лучше выводить предупреждение включит кукисы!

А как же быть с SID? Как сделать безопасную авторизацию? Ну например, сессия исчезает минут через 20 с сервера и пока сессия живет, злоумышленник может узнать SID и зайти под этим пользователем

  Ответить  
 
 автор: xpom   (26.09.2011 в 23:30)   письмо автору
 
   для: cheops   (26.09.2011 в 23:19)
 

Тут проблема даже не в роботах, а в URL, пользователь может забыться и дать ссылку на ваш ресурс вместе со своим логином и паролем, а поисковые роботы это разнесут на весь интернет. В общем передача конфиденциальной информации в GET-параметрах все-равно заведомо плохая идея.
Да согласен, не вариант, тогда лучше выводить предупреждение включит кукисы!

А как же быть с SID? Как сделать безопасную авторизацию? Ну например, сессия исчезает минут через 20 с сервера и пока сессия живет, злоумышленник может узнать SID и зайти под этим пользователем

  Ответить  
 
 автор: cheops   (26.09.2011 в 23:34)   письмо автору
 
   для: xpom   (26.09.2011 в 23:30)
 

А он через 20 минут уже не сможет зайти, так как сервер просто уничтожит все данные, которые принадлежали этой сессии. Т.е. обратиться он конечно к серверу может, но сервер будет себя вести так, как если бы массив $_SESSION был пуст.

  Ответить  
 
 автор: xpom   (27.09.2011 в 14:01)   письмо автору
 
   для: cheops   (26.09.2011 в 23:34)
 

т.е. ничего сверх естественного, обычная сессия и будет все безопасно? Ну и конечно пароль шифрованный в md5
но в этом случае пользователь открывший после 20 минут не сможет просто открыть. нужно будет все вводить заново...это будет наверное не совсем удобно для пользователя...

  Ответить  
 
 автор: cheops   (27.09.2011 в 17:25)   письмо автору
 
   для: xpom   (27.09.2011 в 14:01)
 

Здесь имеется в виду 20 минут бездействия, т.е. пока он работает, сервер его помнит, если он отлучился или выключил браузер, через 20 минут, если от него не поступало новых запросов - сервер анулирует сессию.

  Ответить  
 
 автор: xpom   (27.09.2011 в 21:19)   письмо автору
 
   для: cheops   (27.09.2011 в 17:25)
 

ну это я понял..а с безопасностью как в этом случае?

  Ответить  
 
 автор: xpom   (27.09.2011 в 21:19)   письмо автору
 
   для: cheops   (27.09.2011 в 17:25)
 

ну это я понял..а с безопасностью как в этом случае?

  Ответить  
 
 автор: xpom   (27.09.2011 в 21:19)   письмо автору
 
   для: cheops   (27.09.2011 в 17:25)
 

ну это я понял..а с безопасностью как в этом случае?

  Ответить  
 
 автор: cheops   (27.09.2011 в 21:32)   письмо автору
 
   для: xpom   (27.09.2011 в 21:19)
 

Даже если у пользователя хватит ума потерять свой SID или если его украдут в результате XSS-инъекции, 20 минут слишком мало, чтобы что-то успеть. Учитывая, что XSS-инъекции где-попало не валяются, а пользователи не ходят по каким попало ссылкам, а наличие аккаунта - это не обязательно вероятность смены пароля (его обычно отправляют на e-mail пользователя), злоумышленник должен быть очень упорным и терпеливым. В настоящий момент в Web мало задач, которые бы окупили бы его бессонные ожидания (работать нужно не позднее 20 минут после срабатывания ловушки) - он больше потеряет, чем сможет заработать.

  Ответить  
 
 автор: xpom   (27.09.2011 в 23:39)   письмо автору
 
   для: cheops   (27.09.2011 в 21:32)
 

а какими функциями лучше проверить ввод пароля и логина?

  Ответить  
 
 автор: cheops   (28.09.2011 в 10:17)   письмо автору
 
   для: xpom   (27.09.2011 в 23:39)
 

Это зависит от того, какие требования к ним предъявляются и что вы хотите с ними делать после проверки, а главное как происходит эта проверка (непосредственное сравнение, включение их в SQL-запрос, что-то другое).

  Ответить  
 
 автор: xpom   (30.09.2011 в 18:55)   письмо автору
 
   для: cheops   (28.09.2011 в 10:17)
 

да да включение их в SQL-запрос!

яя делаю авторизацию пользователя, вот думаю сделать проверку жива сессия или нет по SID, т.е. создаем сессию session_start(); потом берем с неё SID (только фот функцию выстаскивание IDсессии не помню) и заносим в базу к пользователю этот SID и в дальнейшем сравниваем, если эта SID, то поскаем пользователя, ведь SID каждый раз разные! Хорошо будет такой вариант работать?

  Ответить  
 
 автор: cheops   (01.10.2011 в 10:10)   письмо автору
 
   для: 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-инъекций.

  Ответить  
 
 автор: Владимир55   (01.10.2011 в 12:09)   письмо автору
 
   для: cheops   (26.09.2011 в 23:19)
 

Ну роботы сами не больно-то спешат сессию поддерживать

Яндекс называет себя сессионным поисковиком. Может, он вкладывает в это другой смысл, - не знаю.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования