Привет программисты =) Настало время мне написать Админ-панель. Я пока сделал супер простую, помогите мне каким образом лучше защитить это место. Мне нужны ваши понятные советы, например: пароль должен храниться зашифрованным в БД, очищать сессию если прошло больше 24 часов с последнего входа и т.д. Пока выглядит так: Код (Text): <?php session_start(); include ("bd.php");// подключаемся к базе данных if (!empty($_SESSION['admin_login']) and !empty($_SESSION['admin_password'])) { //если логин и пароль админа есть в сессиях проверяем на правильность $admin_login = $_SESSION['admin_login']; $admin_password = $_SESSION['admin_password']; if (!($admin_login == 'gfcast_kjubyFlVbYf') AND !($admin_password == 'gfcast_f#[ss1e')) { // данные не верны, выводим форму для входа админа } else { // данные верны, выводим админ панель } } else { // выводим форму для входа админа } ?> Добавлено спустя 7 минут 37 секунд: После того как написал это сообщение, я наткнулся на это статью: http://webforever.info/программирование/основы_написания_админ-панели/ . Можно использовать такой метод, или с 2008 года многое поменялось?
По вашей текущей логике, если логин не 'gfcast_kjubyFlVbYf' и пароль не 'gfcast_f#[ss1e', то авторизация администратора пройдена. Администратор от обычного пользователя отличается только статусом и всё. Ну и возможно некоторыми вашими требованиями к сроку жизни сессии. Соответственно, авторизация полностью аналогична.
в школе на уроках информатики поциент спал (!А И !Б) эквивалентно !(А ИЛИ Б), то есть достаточно чтобы сработало или имя или пароль. бинго!
Пароль не нужно хранить в сессии, как и логин - достаточно идентификатора пользователя или просто признака, что авторизация прошла Статейка вроде ничего
Чтобы не копировать чужой код, а понять как нужно действовать, советую изучить термины: Авторизация, Аутентификация и Идентификация. На русских страницах википедии они неплохо расписаны. Защита страницы (админки) от чтения кем попало это "авторизация". Код (PHP): if ($user != 'admin') { die('Fck off!'); } Но для этого нам надо как-то "идентифицировать" пользователя. Например, мы можем хранить идентификатор в сессии (как вариант, есть и другие варианты). Код (PHP): $user = isset($_SESSION['user']) ? $_SESSION['user'] : ''; А чтобы этот идентификатор появился, должна быть страничка входа, то есть "аутентификации". Код (PHP): $row = findUserByName($_POST['username']); if (!empty($row) && ($row['password'] == hash($_POST['password']))) { $_SESSION['user'] = $_POST['username']; } То есть проверка полномочий и проверка логина/пароля совсем необязательно происходят на одной странице! Аутентификация → Идентификация → Авторизация
это шизофрения - хранить логин и пароль в базе данных я на своих "модерках" везде прямо в коде php пароль поставил - люди не то что "взломали"-они не видят на сайте страницу "модерки" можно подумать сайт спрашивающего парня будут взламывать по 5 раз на дню,типа там пупер портал с секретными данными придурки, делают сайт из 5 страниц- и начинают изобретать регистрации и авторизации ,да еще и через базы данных шизофрения Добавлено спустя 14 минут 17 секунд: http://liozenda.ru/home_video.php вот и вся админка,и не надо шизофрении с базами данных Код (Text): <form method=post action=""> <input type="text" name="name" class="button" size=12 maxlength=12 value='введите число'> <input type="submit" class="button" value=" Готово "> </form> Код (Text): if($name=='2000024') { ?> если цифра верная то выводим текст\код <? } else echo 'угадай ка цифру:)';
Сегодня мы изучим новый способ сравнения значений: "!=" и "!==", которые, дословно, означают "не равно" с приведением типов или без него. Шизофрения - это когда стена,у тебя за спиной, шепчет на ухо, что кофемолка распускает о тебе сплетни. Допустим. Допустим ты в коде прописал даже не пароль в открытом виде, Я НАДЕЮСЬ, а сравнение его с хэшем от того, что ты отдал. Допустим. И вот тебе нужно выдать еще кому-то доступ в админку. Модератору, например. Или второму админу. Если работать с ролями, это вопрос всего пары кликов мышкой. Ты же предлагаешь ворочать исходный код. 1) Хватит и одного взлома. 2) Защита методом Неуловимого Джо хороша только до поры до времени. 3) Да, там портал с секретными данными - с учетными данными других пользователей. Их тоже предлагаешь жестко в исходнике прописывать? 1) Не надо называть придурками тех, чью мотивацию просто не понимаешь по какой-то причине. 2) Твиттер сделан из 5 страничек, и что теперь? 3) Как ты предлагаешь делать регистрацию, если не через БД? Через файлы? 4) Почему такая ненавсить к БД? З.Ы. Так часто говоришь о шизофрении, что мой знакомый Фрейд начинает задумываться. Ну там...вшивый о бане, все дела. Добавлено спустя 1 минуту 38 секунд: эм... ты же в курсе, что даже 7-значное число - это всего лишь 10 миллионов значений? Думаешь, сложно перебрать? Лел. Добавлено спустя 2 минуты 39 секунд: Зашел на твой сайт. Бро, чесслово, не тебе учить других, что делать.