Помощник
|
Нужен код защиты админки. |
phpuser
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
22.4.2010, 22:37;
Ответить: ZiTosS
Сообщение
#2
|
|
phpuser, Всё тоже самое, что ты и делал, но вместо проверки данных с БД, сверяй прям в скрипте определенные значения(фиксированные) с веденными. Самый простой вариант.
|
|
|
phpuser
|
Сообщение
#3
|
|
А проверку пользователя на то что ввёл он уже пароль или нет организовывать на сессиях да?
|
|
|
gaaarfild |
22.4.2010, 23:25;
Ответить: gaaarfild
Сообщение
#4
|
|
Лучше да.
|
|
|
ZiTosS |
22.4.2010, 23:35;
Ответить: ZiTosS
Сообщение
#5
|
|
phpuser, конечно на сессиях, не куки же юзать.
|
|
|
phpuser
|
Сообщение
#6
|
|
Выкладываю код моей самой простейшей защиты админки без использования БД. Советуем и улучшаем
[php]<?php if (isset($_POST['pass'])) {$pass = $_POST['pass'];} if (isset($_POST['user'])) {$user = $_POST['user'];} $hash_pass = md5($pass); $hash_user = md5($user); $lock_pass = "09c33dbae155019000672fbf4ed7702f"; $lock_user = "5435cfddc7e1cd3c1d703f230e2113ba"; if ($lock_pass == $hash_pass and $lock_user == $hash_user) { session_start(); header("Location: welcome.php"); } else { header("Location: index.php?bad=1"); } ?>[/php] |
|
|
gaaarfild |
23.4.2010, 10:47;
Ответить: gaaarfild
Сообщение
#7
|
|
[php]if ($lock_pass == $hash_pass and $lock_user == $hash_user)
{ session_start(); header("Location: welcome.php"); $_SESSION['logged'] = 1; // Чтобы потом из страниц проверять, если сужествует данная переменная, значит авторизован. Если нет, то значит нет. } else { header("Location: index.php?bad=1"); }[/php] |
|
|
ZiTosS |
23.4.2010, 12:23;
Ответить: ZiTosS
Сообщение
#8
|
|
phpuser, немного неверно. А если я обращусь к твоей странице не из формы, а напрямую? Полей user и pass не будет. Догадайся, что мы получим...
Я бы лучше написал так: [php]<?php session_start(); // запускать сессии лучше вначале, они никому и ничего не дают, кроме кук или ID-сессии в GET-строке $user = isset($_POST['user']) ? $_POST['user'] : ""; // если передан логин, то используем его, если он не передан, то пустая строка $pass = isset($_POST['pass']) ? $_POST['pass'] : ""; // если передан пароль, то используем его, если он не передан, то пустая строка $user = md5($user); // хеш строки юзера $pass = md5($pass); // хеш строки пароля $lock_user = "5435cfddc7e1cd3c1d703f230e2113ba"; $lock_pass = "09c33dbae155019000672fbf4ed7702f"; if ( $lock_pass != $pass || $lock_user != $user ) { header("location: index.php?bad=1"); exit(); // не забываем завершать исполнение, а то потом получим мифические результаты } else $_SESSION['logged'] = 1; header("Location: welcome.php"); exit(); ?>[/php] Не забываем затем в файле welcome.php, проверять на существование переменную $_SESSION['logged']. А то будет дырка. |
|
|
phpuser
|
Сообщение
#9
|
|
phpuser, немного неверно. А если я обращусь к твоей странице не из формы, а напрямую? Полей user и pass не будет. Догадайся, что мы получим... К какой странице ты обращаешься напрямую к welcome? Не забываем затем в файле welcome.php, проверять на существование переменную $_SESSION['logged']. А то будет дырка. У меня в файле welcome.php вот такая проверочка была: [php]<?php session_start( ); if ($_SESSION['user'] == null || $_SESSION['user'] < 1) { header("Location: index.php"); exit; } ?>[/php] |
|
|
gaaarfild |
23.4.2010, 16:48;
Ответить: gaaarfild
Сообщение
#10
|
|
У меня в файле welcome.php вот такая проверочка была: [php]<?php session_start( ); if ($_SESSION['user'] == null || $_SESSION['user'] < 1) { header("Location: index.php"); exit; } ?>[/php] Так ты нигде вообще не задал переменную $_SESSION['user']. =) Как это значение может быть истиной? А я кстати не вижу дырки по прямому доступу к файлу. Если нет значений $_POST, то они в любом случае не проходят проверку и отправляются опять в index.php. [php]$user = isset($_POST['user']) ? $_POST['user'] : ""; // если передан логин, то используем его, если он не передан, то пустая строка $pass = isset($_POST['pass']) ? $_POST['pass'] : ""; // если передан пароль, то используем его, если он не передан, то пустая строка[/php] И в этой части смысла не вижу. =) Это же как-то по индийски получается. =) Если POST не пустой, то он равен POST, если пустой, то он пустой! |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта | 0 | Alex-777 | 844 | 7.4.2024, 18:05 автор: Alex-777 |
|
Нужен исполнитель на постоянную основу для набора небольших текстов | 20 | Думающий | 9286 | 2.4.2024, 18:05 автор: Думающий |
|
Нужен сайт с автонаполнением по XML | 1 | REGNET | 1223 | 7.3.2024, 15:08 автор: REGNET |
|
Нужен райтер на постоянку | 13 | Kiloan_Frost | 3416 | 6.3.2024, 22:24 автор: vitaliraduga |
|
Нужен постинг в твиттер | 3 | uahomka | 1733 | 20.2.2024, 1:00 автор: robot_yaga2 |
Текстовая версия | Сейчас: 19.4.2024, 9:04 |