Помощник
|
Авторизация в CMS |
heneration
|
Сообщение
#1
|
||
|
|
||
|
|||
matroskin8 |
7.2.2013, 18:08;
Ответить: matroskin8
Сообщение
#2
|
|
Затем с помощью SELECT делаем выборку всей таблицы с логинами и паролями, вытаскиваем найденные данные в массив и уже внутри цикла while сравниваем то, что было введено в форму, с данными из таблицы. - именно так решил сделать потому что не хочу введенные в форму данные вообще посылать в запросе, даже после эскайпов. Вообще-то так никто не делает. Вытаскивать все записи из таблицы ради того, чтобы найти (или не найти) среди них одну возможную - это очень непрактично. Тем более это не практично, что в таблице лежит хешированый пароль, а потому его и фильтровать не нужно, поскольку сравниваться он будет с такой же хешированой строкой, не несущей никакой угрозы для БД, т.е. остается только профильтровать логин. |
|
|
heneration
|
Сообщение
#3
|
|
Мне не критично и логин хранить в sha1. Непрактично вытаскивать таблицу потому что это дополнительная нагрузка? Дак она врядле будет такая большая при условии, что в таблице будет храниться всего лишь одна-две ну максимум три записи - больше админов врядле будет.
По поводу сессий, так как я планирую сделать одобряете или добавить/изменить что-то? |
|
|
matroskin8 |
7.2.2013, 18:36;
Ответить: matroskin8
Сообщение
#4
|
|
Ну так если хешируется еще и логин, то вообще беспокоиться нечего о целостности запроса, поскольку в хеше по определению ничего вредоносного быть не может. Хотя хешировать логин - это весьма уникальная и несколько сомнительная практика.
Непрактично вытаскивать таблицу потому что это дополнительная нагрузка? Да, именно поэтому. По поводу сессий, так как я планирую сделать одобряете или добавить/изменить что-то? Я бы сделал немного иначе. При успешной авторизации создавал бы элемент сессии и присваивал бы ему в качестве значения логин пользователя - обычно его и выводят в качестве добавления к приветствию после авторизации - типа, Добро пожаловать, Администратор. Правда, логин-то у Вас будет необратимо зашифрован вот потому и сомнительная практика. Ну а если допущены ошибки при авторизации, то и не нужно ничего создавать в сессии. И проверка будет, соответственно, типа такой: if($_SESSION['admin']){
// это для авторизованного пользователя }else{ // пользователь не авторизован, а потому, к примеру, можно сделать редирект на форму авторизации } |
|
|
heneration
|
Сообщение
#5
|
|
Ну так если хешируется еще и логин, то вообще беспокоиться нечего о целостности запроса, поскольку в хеше по определению ничего вредоносного быть не может. Ну да, я для этого и планировал хэшировать. обычно его и выводят в качестве добавления к приветствию после авторизации - типа, Добро пожаловать, Администратор. Ну это больше эстетика, мне совсем не надо чтобы меня приветствовали. Ну а если допущены ошибки при авторизации, то и не нужно ничего создавать в сессии. Мне нужно открывать саму сессию вначале т.е. как только человек заходит в site.ru/admin , и вот почему: когда я захожу в админку, например: site.ru/admin, то файлу из папки admin, который называется reg.php, передается все, что вводится в строку браузера, например в папке admin лежит файл ,edit.php - но его нельзя открыть не авторизованному пользователю, потому что в reg.php стоит условие -если адрес !='admin' и $_SESSION['admin']!=1, то редиректить на admin - таким образом не авторизованный юзер не увидит файлы админки. А по поводу того, что я пишу тому кто не прошел авторизацию: $_SESSION['admin']=0 - это просто инициализация переменной, чтобы не было ошибок. Или нафиг надо? |
|
|
matroskin8 |
7.2.2013, 19:49;
Ответить: matroskin8
Сообщение
#6
|
|
Мне нужно открывать саму сессию вначале Сессия в самом начале всегда и открывается. например в папке admin лежит файл ,edit.php - но его нельзя открыть не авторизованному пользователю Ну так вынесите проверку в отдельный файл: if(!$_SESSION['admin']){ // если не авторизован - редирект на форму авторизации } а затем этот файл подключайте во все файлы, куда нужно запретить доступ неавторизованным юзерам. Вот урок по авторизации - возможно, подойдет для понимания принципа авторизации. В уроке не используется БД, но сам алгоритм, быть может, пригодится. $_SESSION['admin']=0 - это просто инициализация переменной, чтобы не было ошибок. Или нафиг надо? На корректно настроенных хостингах все предупреждения выключены. Даже показ ошибок зачастую отключен и они логируются. Но если все же так нужна щепетильность в скрипте, то можно проверять инициализирована ли переменная: if(isset($_SESSION['admin']))
|
|
|
heneration
|
Сообщение
#7
|
|
|
а затем этот файл подключайте во все файлы, куда нужно запретить доступ неавторизованным юзерам. Вот урок по авторизации - возможно, подойдет для понимания принципа авторизации. В уроке не используется БД, но сам алгоритм, быть может, пригодится. Спасибо почитаю, никогда ранее не сталкивался с php, изучаю в процессе написания админки
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Перенос сайта на CMS Wordpress | 8 | freeax | 4986 | 10.3.2024, 14:58 автор: freeax |
|
Обновить сайт на CMS DLE | 1 | Sawich | 1671 | 2.9.2023, 10:10 автор: WoWeb |
|
[Продам] базы сайтов на CMS Wordpress/Joomla/Drupal/Magento/... | 14 | phosphoruss | 13781 | 16.8.2023, 15:27 автор: SmmPanelUS |
|
Сайт "под ключ" (дизайн, верстка, CMS) | 32 | Brans | 16547 | 19.5.2023, 22:01 автор: Brans |
|
АПИ Таобао, 1688 для интеграции на сайты различных CMS | 0 | NittaSau | 862 | 28.4.2023, 18:07 автор: NittaSau |
Текстовая версия | Сейчас: 26.4.2024, 0:56 |