![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| AmberLX |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Посоветуйте начинающему: хочу сделать простенькую страницу для администрирования.
Написал примерно так (по примеру из книги): Например, есть папка www/ и в ней находится файл admin.php который содержит:
И есть папка www/admin/ в которой находятся файлы: 1) admin.php который содержит:
2) .htacces который содержит: deny from all Вопрос: можно ли в этом случае каким-либо образом прочесть или получить доступ к файлу www/admin/admin.php, если логин и пароль будет прописан в файле как здесь(и если ввод данных в форму будет проверяться)? |
||||
|
|||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
А на страницу администрирования ты только смотришь, и никаких действий с ней не производишь?
И зачем такие сложные телодвижения - папка www/admin/ в которой находятся файлы...? почему нельзя сразу написать все в www/admin.php ? |
|||
|
||||
| AmberLX |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Вообщем, как я понял, это годится если нужно только отобразить секретную информацию на странице и не более.
И если есть только одна страница. Если там будут ссылки на другие страници то это уже не катит. Это сообщение отредактировал(а) AmberLX - 28.2.2008, 16:53 |
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
верно.
а простая авторизация делается немного другими средствами:
включать этот код в начало всех защищаемых скриптов. или в отдельный файл, а его потом - require 'auth.php'; Это сообщение отредактировал(а) GeneralElectric - 28.2.2008, 23:02 |
|||
|
||||
| AmberLX |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Спасиба!
И еще вопросик: Я долго лазил по форумам, искал может уже готовое решение авторизации. Если только там кто-то и пишет свое, то в ответах только куча критики: то не так, это нада так и т.п. Не знаешь че вообще делать и кого слушать, как не пиши все равно поломают. Но ведь есть же готовые решения такие как у SLAED CMS, например, или каких-то других CMS? Ее поломать наверное очень сложно, учитывая что код открытый. Неужели никто не использует какой-то более-менее приемлимый стандартный код для авторизации? |
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
Исходи из аксиомы, что поломать можно все.
|
|||
|
||||
| KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
На одном из форумов по PHP, по-моему, на руборде, видел отличную статью с комментариями о том, как сделать систему авторизации на сайте. Конечно, критика такого метода также присутствует.
Вкратце вот такой алгоритм: 1) Есть таблица admin в базе: id, name, password 2) При авторизации в сессию пишется в открытом виде id и двойной хэш пароля 3) При каждом обращении к защищенной странице идет запрос к базе, вынимается оттуда содержимое поля password (там одинарный хэш пароля), делается ему хэш еще раз и сравнивается. 4) совпало -- молодец, работай. нет - до свидания. Делается класс авторизации, страница входа и страница выхода. Все. далее ЛЮБОЙ скрипт выглядит примерно так: if ( $security->is_admin() ) { ........ тут вся программа } else { getaway(); } ******************** Можно вместо сессии хранить инфу к куках. Я не сильно дружу с куками, поэтому делаю на сессии. Какова критика? Говорят, что постоянное обращение к базе тормозит всю малину. Но так как все работает, а альтернативы на горизонте нет, я использую такой метод. ******************** Поищи самостоятельно эту статью, вещь полезная. |
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
критика обычная.
двойной хеш - это смешной баян. сто раз говорилось, что от количества оборотов стойкость не повышается. Лучше уж солить одинарный. Это если вообще говорить о шифровании чего-либо в сессии. "постоянное обращение к базе" звучит так, как будто к базе у нас обращается толко система авторизации. или что если авторизация сделает мизерный запрос - это ужасно затормозит систему, а если для отображения страницы потребуется сложная выборка, то базе это раз плюнуть. Дружить с куками или с сессиями на самом деле - одно и то же. поскольку передача сессии в урле давно уже подвергнута массовому остракизму, то остаются те же куки. Разница только в том, что туда пишется. |
|||
|
||||
| Staind |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 17.12.2007 Где: Планета сокровищ Репутация: 2 Всего: 3 |
2GeneralElectric,
а вообще нормально так?:
Т.е. если это админ, то создаем какую-нибудь константу и если ее нет направлять на страничку ошибки. --------------------
Ничто так не раздражает человека, как просьба успокоиться |
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
Не очень понимаю смысла этого двухходового действия.
почему нельзя сразу на страничку ошибки? и для констант иссет не работает Это сообщение отредактировал(а) GeneralElectric - 29.2.2008, 13:27 |
|||
|
||||
| Staind |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 17.12.2007 Где: Планета сокровищ Репутация: 2 Всего: 3 |
Понятно, значит после проверки если не верно то шлю на страничку ошибки. Спасибо.
Да, забыл. --------------------
Ничто так не раздражает человека, как просьба успокоиться |
|||
|
||||
| AmberLX |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Ну мне в принципе и нужна авторизация только для одного админа.
Зашел под админом, че-то добавил на сайт или исправил и вышел. Я не думаю, что вход под админом даже раз в день, будет тормозить машину. Статью поищу... Спасибо А то, что поломать можно все понятно. Но ведь у готовых CMS есть авторизация, может лучше там рыться как работает? Я так понимаю там серьезные люди писали, а делиться может не хотят. |
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
Не понял. Что значит - делиться не хотят? Ты же сам писал, что код отккрытый?
А чем тебя не устроаила та авторизация, которую я написал? |
|||
|
||||
| TimberWolf |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.1.2007 Где: Тула Репутация: нет Всего: нет |
Для поддержания темы поделюсь своим скриптом авторизации ... Любую критику приветствую, да и народу может в чём-то поможет. Для работы скрипта нужно поменять только значение константы PASSWORD
dbauth.php :
admin.php :
|
||||
|
|||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
TimberWolf, по большому счету, в таком деле, как проверить по базе дватекстовых поля, записать в сессию, а потом проверять их наличик - серьёзно шибиться сложно.
но, если интересует критика, то какая-то у тебя автоизация многословная. очень много лишнего.
Все die(); заменить на trigger_error(); use_trans_sid - под большим вопросом. КАК МИНИМУМ надо в этом случае делать проверку IP. session_start(); я бы поместил после успешной проверки. ОСОБЕННО учитывая use_trans_sid Это сообщение отредактировал(а) GeneralElectric - 2.3.2008, 17:08 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |