Создать ответ 
Вход в админку по логину и паролю
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #11
RE: Вход в админку по логину и паролю
.htpasswd применяется для конкретной директории, а не файла. Следовательно, следует файл админки, .htpasswd и .htaccess поместить в отдельную папку, например, admin.

В .htaccess указываем путь к .htpasswd:
Код:
<Files .htpasswd>
deny from all
</Files>
AuthName "For registered members only"
AuthType Basic
require valid-user
AuthUserFile /var/www/usefulscript.ru/htdocs/admin/.htpasswd

Путь к файлу нужно указываться от корня сервера!
09.11.2016 14:02:21
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #12
RE: Вход в админку по логину и паролю
Здравствуйте, все вроде правильно делаю, но ничего не получается

1. В папку admin поместил 3 файла - admin.php, .htaccess, .htpasswd
2. В .htaccess
Код:
AuthName "Authentication"
AuthType Basic
AuthUserFile D:/Site/OpenServer/domains/site.ru/www/admin/.htpasswd
require valid-ale10ey
тут ошибится не мог с помощью фунцкии phpinfo() узнал полный путь к файлу его и прописал для AuthUserFile

3. Файл .htpasswd создал без проблем с помощью утилиты htpasswd.exe, где в данный момент прописано
Код:
ale10ey:$apr1$fdERXbE6$vNyCsvhp1imS5DTaZBDQ/0
т.е имеется логин и пароль.

4. при обращении к admin.php (site.ru/admin/admin.php) появляется окно как положено предлагая ввести логин и пароль, но после ввода и клика OK все сбрасывается ...Scratch

5. Все вроде верно, не пойму что не так...
09.11.2016 18:12:47
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #13
RE: Вход в админку по логину и паролю
Видимо, пароль сгенерировали неверно или не по тому алгоритму. У меня, например, хеш пароля получился 13 символов.

Хеш генерировал при помощи echo crypt("111","222");

PHP код:
<?php
$log
='111';
$pass='222';
if (
CRYPT_STD_DES == 1) echo 'Стандартный DES: '.crypt($log,$pass).'<br>';
if (
CRYPT_EXT_DES == 1) echo 'Расширенный DES: '.crypt($log,$pass).'<br>';
if (
CRYPT_MD5 == 1) echo 'MD5: '.crypt($log,$pass).'<br>';
if (
CRYPT_BLOWFISH == 1) echo 'Blowfish: '.crypt($log,$pass).'<br>';
if (
CRYPT_SHA256 == 1) echo 'SHA-256: '.crypt($log,$pass).'<br>';
if (
CRYPT_SHA512 == 1) echo 'SHA-512: '.crypt($log,$pass).'<br>';
?>

Но, при использовании .htpasswd так же возникнут проблемы с кнопкой "Выход", а если быть точнее, то выход будет произведен только в случае закрытия браузера.
09.11.2016 18:42:19
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #14
RE: Вход в админку по логину и паролю
Придумал свой собственный вариант для авторизации с работающей кнопкой "Выход", основанный на сессиях. Отлично подойдет для защиты отдельных файлов, но, думаю защиту от перебора паролей в идеале надо добавить.

Создаем файл lock.php с таким содержимым:
PHP код:
<?php
if (session_id()==''session_start();

if (isset(
$_POST["del_auth"])) $_SESSION["auth"]='';
if (
$_POST["login"]=='qwe' and md5($_POST["pass"])=="76d80224611fc919a5d54f0ff9fba446"$_SESSION["auth"]='yes';
if (
$_POST["login"]=='admin' and md5($_POST["pass"])=="21232f297a57a5a743894a0e4a801fc3"$_SESSION["auth"]='yes';

if (
$_SESSION["auth"]!="yes") {
 echo 
'<form method="POST" action=""><b>Логин: </b><input type="text" name="login" maxlength="20">';
 echo 
'<b>Пароль: </b><input type="password" name="pass" maxlength="20"><input type="submit" value="Отправить"></form></div>';
 exit();
}
echo 
'<form method="POST" action=""><input type="submit" name="del_auth" value="Выход"></form>';
?>

А в защищаемые файлы добавляем: <?php include "lock.php"; ?>
09.11.2016 20:15:42
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #15
RE: Вход в админку по логину и паролю
(09.11.2016 20:15:42)Admin писал(а):  Придумал свой собственный вариант для авторизации с работающей кнопкой "Выход", основанный на сессиях. Отлично подойдет для защиты отдельных файлов, но, думаю защиту от перебора паролей в идеале надо добавить.

1. Здравствуйте, 2 способ понравился больше и самое главное, все работает ! OkYes
Цитата:А в защищаемые файлы добавляем: <?php include "lock.php"; ?>
я не стал создавать на этот раз файл lock.php, данный код поместил в админку, так как все равно строчку
Код:
echo '<form method="POST" action=""><input type="submit" name="del_auth" value="Выход"></form>'
пришлось бы помещать в файл админки так как имеется в админке строка
Код:
if (session_id()=='') session_start();
которую я удалил в коде доступа к файлу админки, чтобы не дублировать.

2. На самом деле я так и не понял почему у меня с файлом .htpasswd ничего не сработало...
там по сути ничего сложного, с помощью командной строки, указываем место утилиты htpasswd.exe и htpasswd -m .htpasswd admin и далее пароль, подтверждаем и файл .htpasswd создается, далее все 3 файла (.htaccess, .htpasswd, файл админки) помещаю в папку admin и в htaccess прописываю:
Цитата:AuthName "Authentication"
AuthType Basic
AuthUserFile D:/Site/OpenServer/domains/site.ru/www/adm/.htpasswd
require valid-admin

и все, все должно работать, а у меня не срабатывает Scratch. Погуглив не смог найти, где я ошибся, так и осталось все под вопросом, хотя тему для себя усвоил, еще бы все работало...
Может это у меня какие-то проблемы с локальным OpenServer, не хочет он понимать, хотя именно с помощью приложения htpasswd.exe находящегося в директории
Цитата:D:\Site\OpenServer\modules\http\Apache-2.4\bin\
создал .htpasswd + командная строка в помощь.

3. У меня рабочие 2 варианта. 1 работает с базой, 2 с сессиями. Скорее буду использовать 2 вариант, так как имеется кнопка выхода, что более удобно.

И еще к вам просьба, если пароль ввожу обычный, т.е цифры и буквы все работает нормально, а вот если добавляю символы, то не срабатывает
Например:
Цитата:v$L@a80e&H
не сработает, в формате md5
Цитата:cf4caadb9d3ef3a6f88a015f0d8802e6
но если такой пароль прописать в базе или в коде с сессиями, то доступ будет сбрасываться.
Как этот момент решить в этом случае ?
Заранее благодарен Yes

Все понятно, как вы сгенерировали пароль, у вас 13 символов, а я ведь создавал с помощью командной строки Windows при помощи приложения htpasswd.exe
где код, если пользователь ale10ey
Код:
ale10ey:$apr1$fdERXbE6$vNyCsvhp1imS5DTaZBDQ/0
т.е имеено такая строчка будет в файле htpasswd, т.е 37 символов.
Что-то подобное я находил и на сторонних ресурсах, погуглив какое-то время.

С помощью
Код:
<?php
$log='111';
$pass='222';
if (CRYPT_STD_DES == 1) echo 'Стандартный DES: '.crypt($log,$pass).'<br>';
if (CRYPT_EXT_DES == 1) echo 'Расширенный DES: '.crypt($log,$pass).'<br>';
if (CRYPT_MD5 == 1) echo 'MD5: '.crypt($log,$pass).'<br>';
if (CRYPT_BLOWFISH == 1) echo 'Blowfish: '.crypt($log,$pass).'<br>';
if (CRYPT_SHA256 == 1) echo 'SHA-256: '.crypt($log,$pass).'<br>';
if (CRYPT_SHA512 == 1) echo 'SHA-512: '.crypt($log,$pass).'<br>';
?>
я конечно могу создать пароль , который будет состоять из 13 символов, но как я этот пароль буду вставлять в файл htpasswd, т.е принудительно прямо в сам файл вставить 22jB.E6ThGcjQ, где pass 222

тогда смысл создавать файл .htpasswd с помощью утилиты htpasswd.exe если его можно создать с помощью обычного блокнота и как понимаю туда прописать нужно только пароль 22jB.E6ThGcjQ ?
(Последний раз сообщение было отредактировано 10.11.2016 в 01:53:29, отредактировал пользователь ale10ey.)
10.11.2016 01:18:24
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #16
RE: Вход в админку по логину и паролю
Вообще-то v$L@a80e&H в md5 будет 70f13d32112af533d82a0eaab60e6b9b, потому и не работает.

Вычисляется элементарно:
PHP код:
echo md5('v$L@a80e&H'); 

Логин и пароль в .htpasswd на хостинге я с помощью обычного редактора кода и вставлял, все работает.
10.11.2016 19:25:33
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #17
RE: Вход в админку по логину и паролю
(10.11.2016 19:25:33)Admin писал(а):  Вообще-то v$L@a80e&H в md5 будет 70f13d32112af533d82a0eaab60e6b9b, потому и не работает.

1. Конечно Blush, совсем забыл про разницу одинарных и двойных кавычек...Blush
если пароль к примеру ale10ey, то при вычислении md5 нет разницы какие будут кавычки, а вот если имеются символы, то надо заключать только в одинарные кавычки...

Цитата:Логин и пароль в .htpasswd на хостинге я с помощью обычного редактора кода и вставлял, все работает.
А у меня ни фига не работает Be.
Может в как именно вы делаете, я вроде все делаю верно, но беда ...

1. Создал в корне папку admin
2. Создал 2 файла (.htaccess, .htpasswd) и admin.php поместил в папку admin
3. В .htaccess прописал
Цитата:<Files .htpasswd>
deny from all
</Files>
AuthName "Authentication"
AuthType Basic
AuthUserFile D:/Site/OpenServer/domains/site.ru/www/admin/.htpasswd
require valid-ale10ey
где логин - ale10ey
4. В .htpasswd прописал
Цитата:ale10ey:47a7479e56f6a79d1749ff38676fa805
где md5 пароль - ye01ela
хотя если использовать ваш код, то будет 13 символов
Цитата:yeOc.NL3JVPko
5. Похоже я .htpasswd неправильно прописываю, может там не надо строчки
Цитата:ale10ey:47a7479e56f6a79d1749ff38676fa805
а достаточно только пароля
Цитата:47a7479e56f6a79d1749ff38676fa805
хотя так тоже проверял, не работает
6. Или что-то с настройками локального сервера OpenServer, хотя раньше проблем не было.

В любом случае буду благодарен, так как косяк явно где-то есть.
10.11.2016 20:28:59
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #18
RE: Вход в админку по логину и паролю
Ну так и вставьте в .htpasswd через блокнот:
Цитата:ale10ey:yeOc.NL3JVPko
10.11.2016 20:43:12
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #19
RE: Вход в админку по логину и паролю
(10.11.2016 20:43:12)Admin писал(а):  Ну так и вставьте в .htpasswd через блокнот:
Цитата:ale10ey:yeOc.NL3JVPko

Только, что проверил, при обращение к site.ru/admin/admin.php окно появляется, но если я ввожу в данном случае ale10ey (логин) и ye01ela (пароль), то после клика все сбрасывается ...
10.11.2016 20:52:52
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #20
RE: Вход в админку по логину и паролю
А я проверил на своем хостинге - работает, так что фиг знает в чем причина того что у Вас не работает.
10.11.2016 22:14:12
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)



Mail.ru LiveInternet

© Copyright 2011-2016 by UsefulScript.ru