Jump to content
  • 0

Опять про авторизацию


Sserg-135
 Share

Question

Почитал существующие темы и руководство к ПХП, но все-таки не понял :

Задача сделать авторизацию для запуска админ-скрипта (в дальнейшем сделать регистрацию и для пользователей).

Через функцию header(), или через самодельную форму получил переменные $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] и использую их в рамках данного скрипта - это вроде понятно.

Вопрос : а как передать эти значения в другие скрипты, которые вызываются из этого скрипта. ПХП в них ругается что таких переменных нет. Неужели и их надо передавать через POST ? Или в таких случаях надо использовать сессии?

И еще вопрос: где лучше хранить пароль админа - в БД MySQL или достаточно в зашиврованном виде в простом текстовом файле?

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0
Вопрос : а как передать эти значения в другие скрипты, которые вызываются из этого скрипта. ПХП в них ругается что таких переменных нет. Неужели и их надо передавать через POST ? Или в таких случаях надо использовать сессии?

да. use (SESSION || COOKIE) && GOOGLE

http://forum.htmlbook.ru/index.php?showtopic=7836

И еще вопрос: где лучше хранить пароль админа - в БД MySQL или достаточно в зашифрованном виде в простом текстовом файле?

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

Link to comment
Share on other sites

  • 0
Т.е. правильно в этом случае юзать именно сессии ...?

желательно, но не обязательно. имхо, удобнее, т.к. не надо портить html страницу лишними формами. и относительно безопаснее чем теже COOKIEs. Но все зависит, есссно дело, от АЛГОРИТМА авторизации - если он кривой то поможет только выдергивание сетевого кабеля.

Link to comment
Share on other sites

  • 0

конечно сессии, а я еще дополнительно в момент авторизации сохраняю в табле с юзерами ИП и часть SESSID авторизовавшегося человека. И при каждомы вызове защищенного скрипта сютрю SESSID который мне дает браузер, а из базы выдергиваю строку у которой ИП равен ип-адресу чела который вызвал скрипт $_SERVER['REMOTE_ADDR'] и сравниваю эту часть сессид. Если несоотвествие -дасвиданья!

Link to comment
Share on other sites

  • 0
конечно сессии, а я еще дополнительно в момент авторизации сохраняю в табле с юзерами ИП и часть SESSID авторизовавшегося человека. И при каждомы вызове защищенного скрипта сютрю SESSID который мне дает браузер, а из базы выдергиваю строку у которой ИП равен ип-адресу чела который вызвал скрипт $_SERVER['REMOTE_ADDR'] и сравниваю эту часть сессид. Если несоотвествие -дасвиданья!

А зачем в базу-то? не проще ли в саму сессию писать IP? а потом сравнивать $_SERVER['REMOTE_ADDR'] и $_SESSION['REMOTE_ADDR'] (внесенный туда при первой авторизации). имхо, разница в безопасности этих двух подходов не очень велика, потому зачем грузить мускул неррациональной задачей? может конечно база нужна в данном случае не только чтоб получать только IP и часть сессии, но и еще к-л информацию, но этого hummermania не указал

Link to comment
Share on other sites

  • 0
конечно сессии, а я еще дополнительно в момент авторизации сохраняю в табле с юзерами ИП и часть SESSID авторизовавшегося человека. И при каждомы вызове защищенного скрипта сютрю SESSID который мне дает браузер, а из базы выдергиваю строку у которой ИП равен ип-адресу чела который вызвал скрипт $_SERVER['REMOTE_ADDR'] и сравниваю эту часть сессид. Если несоотвествие -дасвиданья!

А зачем в базу-то? не проще ли в саму сессию писать IP? а потом сравнивать $_SERVER['REMOTE_ADDR'] и $_SESSION['REMOTE_ADDR'] (внесенный туда при первой авторизации). имхо, разница в безопасности этих двух подходов не очень велика, потому зачем грузить мускул неррациональной задачей? может конечно база нужна в данном случае не только чтоб получать только IP и часть сессии, но и еще к-л информацию, но этого hummermania не указал

А как насчет ситуации когда я сел за комп в общественном месте, авторизовался в защищенную часть сайта, и потом закрыл страницу, не закрывая браузер! Что получится. В его кукисах до самого закрытия для этого хоста будет храниться SESSID, набрав адрес хоста можно легко и просто попасть в защищеную часть сайта. Возможна ли такая ситуация? Конечно. А если в табле с юзверами храниться и время, когда последний раз запрашивалсь страничка любая, из защищенной части сайта. И при каждом вызове это время обновлять. Причем обновлять в случае когда время последнего захода не превысило определенный таймаут. Т.е. если я авторизованный пользователь. Для меня в сессиях храниться мой ИП, логин. А в табле в строке с моей учеткой дополнительно еще и время полсденей запрошенной страницы, еще раз ИП, часть сессИД. если я отошел оставив открытой страничку с админкой - то при попытке обновить старницу скрипт увидит что время последнего обнолвения превысило скажем 3-5 минут. вроде бы юзверь тот же, но а вдруг не тот же. Интервал превышен - в табле сбрасываю ИП, сессИД, время. А последующие строки проверок увидят что с этого адреса никто не авторизовывался! и всю процедуру можно начинать заново. Может немножко неудобно для модераторов - но безопасность превыше всего!

Link to comment
Share on other sites

  • 0
конечно сессии, а я еще дополнительно в момент авторизации сохраняю в табле с юзерами ИП и часть SESSID авторизовавшегося человека. И при каждомы вызове защищенного скрипта сютрю SESSID который мне дает браузер, а из базы выдергиваю строку у которой ИП равен ип-адресу чела который вызвал скрипт $_SERVER['REMOTE_ADDR'] и сравниваю эту часть сессид. Если несоотвествие -дасвиданья!

а если IP у юзера поменяется или динамический, то тогда как?

Link to comment
Share on other sites

  • 0

да, птичка это выход.

Кстати как насчет того чтобы разработать максимально трудный для взлома и компроментации алгоритм авторизации? HTTPS не в счет, а такую авторизацию которую можно и новичку и профи сделать вручную на пхп.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy