Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Какой самый надежный способ аутентификации ?
Форумы портала PHP.SU » PHP » Программирование на PHP » Какой самый надежный способ аутентификации ?

Страниц (3): [1] 2 3 »
 

1. armancho7777777 - 17 Апреля, 2011 - 19:33:09 - перейти к сообщению
Здравствуйте все!
Вопрос к экспертом и магистрам)
Подскажите пожалуйста, какой самый надёжный способ аутентификации ?
Достаточто ли надёжна аутентификация с помощью сеансов?
2. EuGen - 17 Апреля, 2011 - 19:52:15 - перейти к сообщению
"Самый надежный" - понятие относительное.
Если безопасность нужна из ряда вон, используйте стандартный механизм сессий с привязкой, скажем, по IP и с соединением по подтвержденному SSL-сертификату.
3. armancho7777777 - 17 Апреля, 2011 - 19:59:08 - перейти к сообщению
А с привязкой по IP ? Он же должен быть статистичесий обязательно?
4. EuGen - 17 Апреля, 2011 - 20:01:48 - перейти к сообщению
При первом посещении привязку делайте к тому IP, с которого сделан запрос (то есть это усложнит всякие XSS и им подобные)
И время жизни сессии задавайте. Скажем, 10 минут. И делайте logout, если пользователь ничего не делал в течении этого времени.
5. armancho7777777 - 17 Апреля, 2011 - 20:10:37 - перейти к сообщению
Спасибо большое! И ещё очень важный вопрос для меня. На счёт SSL-сертификатов.
Я хочу воспользоваться им, но вот не знаю как. Мне надо изучить хорошо эту технологию, или достаточно на хостинге заказать его, и они всё сделают?
6. EuGen - 17 Апреля, 2011 - 20:13:05 - перейти к сообщению
Изучить я бы рекомендовал в любом случае. По поводу сертификатов - думаю, можете обратиться к хостеру, наверняка они предоставляют такую услугу, или же можете заказать его сами.
7. armancho7777777 - 17 Апреля, 2011 - 20:17:53 - перейти к сообщению
Да, хостеры предоставляют эту услугу. А не посоветуете какое либо пособие, где это всё доходчиво разъясняется?
8. EuGen - 17 Апреля, 2011 - 20:21:47 - перейти к сообщению
9. armancho7777777 - 17 Апреля, 2011 - 20:23:02 - перейти к сообщению
EuGen, спасибо Вам большое!)
10. armancho7777777 - 17 Апреля, 2011 - 22:45:34 - перейти к сообщению
EuGen


EuGen, посмотрите пожалуйста этот код. Что скажете?



PHP:
скопировать код в буфер обмена
  1. <?
  2. if (isset($_POST['auth_name'])) {
  3.   $name=mysql_real_escape_string($_POST['auth_name']);
  4.   $pass=mysql_real_escape_string($_POST['auth_pass']);
  5.  
  6.   $query = "SELECT * FROM `admin_pass` WHERE `username`='".$name."' AND `password`='".$pass."'";
  7.  
  8.   $res = mysql_query($query) or trigger_error(mysql_error().$query);
  9.   if ($row = mysql_fetch_assoc($res)) {
  10.     session_start();
  11.     $_SESSION['user_id'] = $row['id'];
  12.     $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  13.   }
  14.   header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
  15.   exit;
  16. }
  17. if (isset($_GET['action']) AND $_GET['action']=="logout") {
  18.   header("Location: http://".$_SERVER['HTTP_HOST']."/");
  19.   exit;
  20. }
  21. if (isset($_REQUEST[session_name()])) session_start();
  22. if (isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return;
  23. else {
  24. ?>
  25. <form method="POST">
  26. <input type="text" name="auth_name"><br><br>
  27.  
  28. <input type="password" name="auth_pass"><br><br>
  29.  
  30. <input type="submit"><br>
  31. </form>
  32. <?
  33. }
11. OrmaJever - 17 Апреля, 2011 - 23:51:36 - перейти к сообщению
1) зачем начинать сесию 3 раза в одном файле? строки 10, 18 и 23
2) trigger_error(mysql_error().$query) Это чтобы пользователь знал имя таблицы и путь к файлам для будущего взлома?
12. SAD - 17 Апреля, 2011 - 23:54:41 - перейти к сообщению
OrmaJever пишет:
Это чтобы пользователь знал имя таблицы и путь к файлам для будущего взлома?

кросавчег)
13. armancho7777777 - 17 Апреля, 2011 - 23:55:56 - перейти к сообщению
SAD пишет:
OrmaJever пишет:
Это чтобы пользователь знал имя таблицы и путь к файлам для будущего взлома?

кросавчег)

Это сорказм, или он прав?
14. SAD - 17 Апреля, 2011 - 23:57:10 - перейти к сообщению
прав Ха-ха
15. OrmaJever - 18 Апреля, 2011 - 00:01:09 - перейти к сообщению
armancho7777777 пишет:
Это сорказм, или он прав?

Зделай синтаксическую ошибку в запросе и посмотри что выведет.
(Добавление)
А выведет примерно следуйщее
CODE (htmlphp):
скопировать код в буфер обмена
  1. Notice: Table 'site.admin_pass' doesn't existSELECT * FROM `admin_pass` WHERE `username`='' AND `password`='' in X:\www\test.php on line 275

Это джек пот для хакера Улыбка

 

Powered by ExBB FM 1.0 RC1