Простейшая авторизация для вашего сайта.

www.karman.com.ua
портал о хостинге в Украине
Хостинг + Украина = Karman.com.ua

Сайт от А до Б

/

Основы сайта

/

Интересные скрипты

/

Изучаем PHP

/

Как заработать на сайте

/

Раскрутка сайта

/

CMS


Простейшая авторизация для вашего сайта. 

Еще по теме:
  Простейшая авторизация для вашего сайта

Web-мастерам, использующим в качестве движка для сайта что-либо собственноручно написанное рано или поздно надоедает обновлять сайт, редактируя файлы по FTP или работая напрямую с базой данных. И тогда начинается написание скриптов администрирования, которые бы позволили управлять сайтом в интерактивном режиме с приятным внешним видом и наконец-то сделали процесс обновления более приятным. Первый вопрос, который обычно возникает в таком случае - это вопрос авторизации - не будешь же давать возможность каждому, нашедшему на сайте административный раздел, творить все, что ему взбредет в голову. Сегодня мы с вами рассмотрим процесс написания простейшей авторизации.

Для начала несколько уточняющих моментов. Первое - пишем на PHP, так как это наиболее распространенный на сегодняшний день язык написания систем управления сайтами. И второе - я лично против самописных скриптов, отвечающих за сам ввод логина пароля. Поэтому не будем изобретать велосипед, т.е. собственный принцип авторизации, а воспользуемся стандартными возможностями.

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

Пример окна запроса на авторизацию

Возможность входа в защищенную зону сохраняется в течение всего сеанса работы окна браузера, но после того, как вы его закроете, войти снова можно будет лишь набрав имя пользователя и пароль. То есть, воспользовавшись вашим компьютером, незаконных действий от вашего имени совершить невозможно. Чем еще хорош этот метод? Он не принимает никаких переменных со сторонних серверов и после трехкратного неверного ввода пароля вам придется обновлять страницу, что затрудняет взлом системы подбором.

А выглядит это вот так:

<?php if(!isset($PHP_AUTH_USER)) // пользователь неизвестен { Header("WWW-Authenticate: Basic realm=\"Admin Center\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } else // пользователь известен, неизвестен пароль { // введенный пароль $password = "$PHP_AUTH_PW"; // просмотр базы для получения реального пароля $link = mysql_connect($dbhost, $dbuser, $dbpasswd); mysql_select_db($dbname); $result=mysql_query("SELECT password FROM auth WHERE name=\"$PHP_AUTH_USER\""); $row=mysql_fetch_array($result); // проверка if ($row==NULL) // пользователя с таким именем нет в БД, выходим { Header("WWW-Authenticate: Basic realm=\"Admin Center\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } else // пользователь с таким именем есть в БД, проверка пароля { $real_password="$row[password]"; if ($real_password!=$password) { Header("WWW-Authenticate: Basic realm=\"Admin Center\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } } } ?> // далее следует код самой страницы

Введенный пользователем логин хранится в переменной $PHP_AUTH_USER, пароль - в $PHP_AUTH_PW. Кстати, обратите внимание на проверку существования записи пользователя с таким именем в базе данных - это критический момент, который учитывать весьма важно. В случае, если такой проверки не будет, это приведет к плачевным результатам - $row[password] будет равно нулю, то есть введя несуществующее имя пользователя и пустой пароль можно будет попасть в защищенную зону.

Между инструкциями Header("HTTP/1.0 401 Unauthorized"); и exit(); вставляем что угодно - от простой фразы о том, что сюда нельзя до предложения куда-нибудь сходить, слетать, сбегать, сползать и так далее. Да, чуть не забыл - в переменных $dbhost, $dbuser, $dbpasswd и $dbname хранятся данные, обеспечивающие доступ к базе и имя базы.

Подобный код необходимо вставить на каждую страницу защищенной зоны, например, через include.

Вот вы и защищены. От себя могу еще добавить, что паролирование таким способом лично мне кажется весьма удобным и надежным.

Чтобы обсудить это в форуме, нажмите здесь.


Хостинг-источник: http://karman.com.ua, http://lib.protoplex.ru/lib_show/131.html
Есть вопросы о хостинге и о сайтах?
и получи ответ от профессионалов, которые обожают помогать людям :).

© СПД Праведно-Счастливый Аладдин Ярославович, 2004-2008. Все права защищены. При цитировании материалов ссылка на www.karman.com.ua обязательна. Редакция "Кармана" может не разделять точку зрения авторов статей, сообщений и ответственности за их содержание не несет.

Быстрый переход к содержимому сайта Karman.com.ua:
Новости, советы, углубленные знания, знания для новичков, законодательство, интересные скрипты, фотогалереи, отчеты, статьи о хостинге: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
Часто задаваемые общие вопросы о хостинге, про FTP, PHPMyAdmin и MySQL, CPanel, Предустановленные скрипты, WHM, Cron, .htaccess, SSH, Паролирование директорий, О доменах, о работе с сайтом, о Раскрутке сайта, об Электронной почте, про Основы web-программирования: 0, 1
Энциклопедия основных терминов хостинга, программного обеспечения, железной стороны хостинга, технологий, электронной почты и доменов: 0, 1, 2, 3, 4, 5, 6
Сайты о хостинге (форумы, хостинг-провайдеры, студии веб-дизайна, домен-регистраторы, инструментарии в помощь вебмастеру): 0, 1, 2

Rambler's Top100