(09.11.2016 20:15:42)Admin писал(а): Придумал свой собственный вариант для авторизации с работающей кнопкой "Выход", основанный на сессиях. Отлично подойдет для защиты отдельных файлов, но, думаю защиту от перебора паролей в идеале надо добавить.
1. Здравствуйте, 2 способ понравился больше и самое главное, все работает !
Цитата:А в защищаемые файлы добавляем: <?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
и все, все должно работать, а у меня не срабатывает
. Погуглив не смог найти, где я ошибся, так и осталось все под вопросом, хотя тему для себя усвоил, еще бы все работало...
Может это у меня какие-то проблемы с локальным OpenServer, не хочет он понимать, хотя именно с помощью приложения htpasswd.exe находящегося в директории
Цитата:D:\Site\OpenServer\modules\http\Apache-2.4\bin\
создал .htpasswd + командная строка в помощь.
3. У меня рабочие 2 варианта. 1 работает с базой, 2 с сессиями. Скорее буду использовать 2 вариант, так как имеется кнопка выхода, что более удобно.
И еще к вам просьба, если пароль ввожу обычный, т.е цифры и буквы все работает нормально, а вот если добавляю символы, то не срабатывает
Например:
Цитата:v$L@a80e&H
не сработает, в формате md5
Цитата:cf4caadb9d3ef3a6f88a015f0d8802e6
но если такой пароль прописать в базе или в коде с сессиями, то доступ будет сбрасываться.
Как этот момент решить в этом случае ?
Заранее благодарен
Все понятно, как вы сгенерировали пароль, у вас 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 ?