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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Какой самый надежный способ аутентификации ? [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
armancho7777777 Супермодератор
Отправлено: 18 Апреля, 2011 - 00:11:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




А как лучше сделать? Убрать последние два вызова сессии? Но так не будет работать скрипт.
(Добавление)
OrmaJever пишет:
1) зачем начинать сесию 3 раза в одном файле? строки 10, 18 и 23
2) trigger_error(mysql_error().$query) Это чтобы пользователь знал имя таблицы и путь к файлам для будущего взлома?

Помогите пожалуйста привести этот код в идальное состояние.

(Отредактировано автором: 18 Апреля, 2011 - 00:35:48)

 
 Top
OrmaJever Модератор
Отправлено: 18 Апреля, 2011 - 00:34:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




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

Разве здесь не видно имя таблицы admin_pass?
Так же путь к этому файлу X:\www\test.php (это мой для примера) для заливкишела например он не помешает


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Апреля, 2011 - 01:15:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Ну, в общем, из этой строки
я убрал эту часть
Что либо в коде можно усовершенствовать так, что бы вероятность взлома снизить до минимум, и что бы можно было назвать это хорошей защитой?
 
 Top
OrmaJever Модератор
Отправлено: 18 Апреля, 2011 - 01:45:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




armancho7777777 пишет:
и что бы можно было назвать это хорошей защитой

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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Апреля, 2011 - 01:47:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




OrmaJever пишет:
armancho7777777 пишет:
и что бы можно было назвать это хорошей защитой

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

Спасибо большое OrmaJever!
 
 Top
OrmaJever Модератор
Отправлено: 18 Апреля, 2011 - 01:52:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Апреля, 2011 - 02:03:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




О, ну за это, OrmaJever, сугубо, лично, от всей души, благодарствую!)
(Добавление)
А как уничтожить сессию при закрытии вкладки? Только JS?
 
 Top
destus
Отправлено: 18 Апреля, 2011 - 05:48:57
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Апр. 2011  


Помог: 4 раз(а)




Самый надёжный способ имхо это при авторизации посылать смс с паролем для вхождения в систему.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Апреля, 2011 - 05:50:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




destus пишет:
Самый надёжный способ имхо это при авторизации посылать смс с паролем для вхождения в систему.

Для авторизации, или регистрации?
 
 Top
albertinisuel
Отправлено: 18 Апреля, 2011 - 09:07:41
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




destus пишет:
Самый надёжный способ имхо это при авторизации посылать смс с паролем для вхождения в систему.


Вы можете привести хотя бы пару отечественных примеров сервисов, которые так делают ?
 
 Top
nikob
Отправлено: 19 Апреля, 2011 - 11:44:36
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




albertinisuel пишет:
destus пишет:
Самый надёжный способ имхо это при авторизации посылать смс с паролем для вхождения в систему.


Вы можете привести хотя бы пару отечественных примеров сервисов, которые так делают ?


LiqPay
В качестве логина используется номер мобильного телефона, каждый раз при входе на телефон приходит СМС с одноразовым девятизначным паролем, который нужно ввести для входа.

(Отредактировано автором: 19 Апреля, 2011 - 11:45:06)

 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Апреля, 2011 - 16:40:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




nikob пишет:
albertinisuel пишет:
destus пишет:
Самый надёжный способ имхо это при авторизации посылать смс с паролем для вхождения в систему.


Вы можете привести хотя бы пару отечественных примеров сервисов, которые так делают ?


LiqPay
В качестве логина используется номер мобильного телефона, каждый раз при входе на телефон приходит СМС с одноразовым девятизначным паролем, который нужно ввести для входа.

Да, хорошая идея nikob, так и сделаю. Только будет 2 пароля.
Логин номер телефона, пароль - свой(постоянный).
Далее, если пароль верный, то второй пароль (одноразовый) высылается на телефон. Он вводится в поле, которое откроется после первой процедуры ввода логина и первого пароля.
Вроде супер Радость Есть ещё у кого идеи? Радость

(Отредактировано автором: 19 Апреля, 2011 - 16:46:31)

 
 Top
OrmaJever Модератор
Отправлено: 19 Апреля, 2011 - 16:46:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Да стелефоном идея конешно самая лутше помоему, но для этого нужно много мороки.
Можно зделать с секретным вопросом и ip адресом, при регистрации добавляем ип с которого зарегестрировался пользователи и затем если при входе он сменился то спрашивать секретный вопрос.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Апреля, 2011 - 16:50:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




OrmaJever пишет:
Да стелефоном идея конешно самая лутше помоему, но для этого нужно много мороки.
Можно зделать с секретным вопросом и ip адресом, при регистрации добавляем ип с которого зарегестрировался пользователи и затем если при входе он сменился то спрашивать секретный вопрос.

Да, точно) Прямо десятизначная защита)
(Добавление)
Nikob, молодчага, спасибо за идею! Радость

(Отредактировано автором: 19 Апреля, 2011 - 16:56:52)

 
 Top
EuGen Администратор
Отправлено: 19 Апреля, 2011 - 17:02:23
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




"Нужно закрыть доступ со всех IP, которые входят в диапазон 0.0.0.0/0.0.0.0.0 и тогда, наконец, компьютерная безопасность будет соблюдена" (с)
Авторизация по телефону - вещь ненадежная, так как смс могут недосылаться/ досылаться с задержкой и т.п. (к примеру, допустимое время доставки по РФ 72 часа.) То есть, разумеется, это усиливает механизм защиты, но в ряде случаев мешает нормальной работе. Если такое и делать, то правильнее давать пользователю возможность выбора - включать такое или нет.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB