Http'ед
Заголовок топика составлен из двух слов — http и велосипед. Дело в том, что ни в одной сфере веб-программирования не изобретено столько велосипедов, сколько в аутентификации пользователей при входе на сайт. Что ни «движок» — то своя система. Сам я грешен, написал нечто подобное и прекрасно представляю, сколько факторов нужно учесть при создании простенького, казалось бы, механизма с двумя полями (логин и пароль) и одной кнопкой.
Между тем, стандартный протокол HTTP предоставляет для этой цели готовые средства, поддерживаемые как на уровне любого уважающего себя браузера, так и на уровне любого уважающего себя веб-сервера. Причем на стороне сервера, как правило, предлагается широкий диапазон способов проверки корректности введенных пользователем учетных данных: от простого текстового файла до сервера LDAP.
Ввод пароля и логина осуществляется в специальное диалоговое окно, из которого информация, упакованная в формат base64 (на случай присутствия нелатинских букв) и передается на сервер, где предусмотрены алгоритмы проверки. Вот, например, как делается проверка по базе данных LDAP в lighttpd (фрагмент конфига):
Для тех, кто не хочет городить огород с LDAP, есть еще более простые строчки.
Вторая из них указывает на имя файла, в котором хранятся пары логин/пароль в формате
Конечно для сайтов, где помимо всего прочего нужно соблюсти еще и высококачественный товарный вид, такое решение не очень подходит. Но для небольших проектов, а также для всевозможных систем управления контентом, которыми пользуются 5-10 человек — самое оно. Преимуществом такого решения является и то, что организовать его может админ без привлечения программистов. Естественно, что в любом случае передача логина и пароля на сервер должна осуществляться по протоколу https. Но это уже отдельная тема.
Между тем, стандартный протокол HTTP предоставляет для этой цели готовые средства, поддерживаемые как на уровне любого уважающего себя браузера, так и на уровне любого уважающего себя веб-сервера. Причем на стороне сервера, как правило, предлагается широкий диапазон способов проверки корректности введенных пользователем учетных данных: от простого текстового файла до сервера LDAP.
Ввод пароля и логина осуществляется в специальное диалоговое окно, из которого информация, упакованная в формат base64 (на случай присутствия нелатинских букв) и передается на сервер, где предусмотрены алгоритмы проверки. Вот, например, как делается проверка по базе данных LDAP в lighttpd (фрагмент конфига):
auth.backend = "ldap"
auth.backend.ldap.hostname = "localhost"
auth.backend.ldap.base-dn = "dc=mycoolserver,dc=info"
auth.backend.ldap.bind-dn = "cn=Odmin"
auth.backend.ldap.bind-pw = "borodaswiter"
auth.backend.ldap.filter = "(cn=$)"
auth.require = ("/odminko" => (
"method" => "basic",
"realm" => "Password for Odmin",
"require" => "user=Odmin"
)
)
Для тех, кто не хочет городить огород с LDAP, есть еще более простые строчки.
auth.backend = "plain"
auth.backend.plain.userfile="lighttpd.users"
Вторая из них указывает на имя файла, в котором хранятся пары логин/пароль в формате
odmin:borodaswiter
Конечно для сайтов, где помимо всего прочего нужно соблюсти еще и высококачественный товарный вид, такое решение не очень подходит. Но для небольших проектов, а также для всевозможных систем управления контентом, которыми пользуются 5-10 человек — самое оно. Преимуществом такого решения является и то, что организовать его может админ без привлечения программистов. Естественно, что в любом случае передача логина и пароля на сервер должна осуществляться по протоколу https. Но это уже отдельная тема.
Комментарии (2)
RSS свернуть / развернутьдовольно серьезная вещь делается так просто
Sergei_T
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.