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

Сообщений: 352
У нас с: Nov 2014
Сообщение: #21
RE: Вход в админку по логину и паролю
(10.11.2016 22:14:12)Admin писал(а):  А я проверил на своем хостинге - работает, так что фиг знает в чем причина того что у Вас не работает.

Короче с OpenServer перекинул скопировал сайт на Denwer - та же история, все скрипты работают, а .htpasswd такая ерунда.
Окно выдается, логин и пароль вбиваю, OK и все сбрасывается...
В любом случае спасибо за терпение Yes, хотя ни фига у меня ничего не получилось ...
11.11.2016 03:32:57
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

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

(09.11.2016 20:15:42)Admin писал(а):  Придумал свой собственный вариант для авторизации с работающей кнопкой "Выход", основанный на сессиях.

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>';
?>

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

В принципе у меня вопросов больше нет, хотя можно тему развивать и дальше, но для этого нужны другие знания.
Да, защиту хотелось бы добавить, но как это сделать правильно, есть затруднения.
С уважением и заранее благодарен. Yes
11.11.2016 16:49:32
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #23
RE: Вход в админку по логину и паролю
Под защитой от перебора я подразумевал ограничение на количество попыток ввода паролей в определенный промежуток времени, т.к. если пароль простой или короткий, то злоумышленник может запустить на своем сервере скрипт, который будет перебирать пароли и отправлять POST запросы к вашей админке (чтобы каждый раз не загружать страничку).
Ну и опять же, смотря что у Вас в админке. Если с ее помощью можно что-то изменять и удалять на хостинге - то лучше сделать доступ в нее как можно надежнее.

Может я конечно слишком щепетильно отношусь к вопросу безопасности. Но если пароль у Вас будет достаточно длинный и сложный, то все ок.
11.11.2016 22:48:43
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #24
RE: Вход в админку по логину и паролю
Вот, что придумал:
PHP код:
<?php
if (session_id()==''session_start();

if (isset(
$_POST["del_auth"])) $_SESSION["auth"]='';

if (isset(
$_POST["pass"]) and $_SERVER['REQUEST_TIME']-filemtime('lock')>10) {
 if (
$_POST["login"]=='qwe' and md5($_POST["pass"])=="76d80224611fc919a5d54f0ff9fba446"$_SESSION["auth"]='yes';
 if (
$_POST["login"]=='admin' and md5($_POST["pass"])=="21232f297a57a5a743894a0e4a801fc3"$_SESSION["auth"]='yes';
 
file_put_contents('lock','');
}

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>';
?>

В папке с админкой создаем пустой файл lock. Каждый раз при вводе пароля скрипт проверяет дату изменения файла lock. Если прошло больше 10 секунд с момента изменения файла, то проверяем пароль, если меньше - то перезаписываем файл lock.
Таким образом, проверка введенного пароля будет осуществляться не чаще одного раза в 10 секунд.

Может где-то и начудил немного Be
11.11.2016 23:34:38
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #25
RE: Вход в админку по логину и паролю
Цитата:В папке с админкой создаем пустой файл lock. Каждый раз при вводе пароля скрипт проверяет дату изменения файла lock. Если прошло больше 10 секунд с момента изменения файла, то проверяем пароль, если меньше - то перезаписываем файл lock.
Таким образом, проверка введенного пароля будет осуществляться не чаще одного раза в 10 секунд.

Доброе время суток Yes, только что проверил в работе.
1. Имеется в папке adn 2 файла - admin.php и файл lock.
2. Если данные ввожу быстро, т.е. прошло меньше чем 10 секунд, файл lock пытается перезаписаться, но остается пустым, так и должно быть?

[Изображение: tid_396_lock_2.png]

3. Короче если пароль больше или меньше и введен меньше чем за 10 секунд файл lock остается пустым.

Если файл будет перезаписываться нормально, то тогда чтобы размер его не становился большим его через какое-то время надо будет удалять.
Или тут надо как-то по-другому делать или все нормально, хотя по сути введенный "неправильный" пароль в файл lock не попадает, хотя пытается перезаписаться, но остается пустым Scratch
12.11.2016 01:53:40
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #26
RE: Вход в админку по логину и паролю
Файл lock должен оставаться пустым и ничего удалять не надо.
Скрипт считывает именно дату последнего изменения файла, а не его содержимое. Делал скрипт специально чтобы он работал только с файлом (чтобы не работать с БД).
12.11.2016 17:42:34
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

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

В чем заключается защита, если к примеру кто-то пытается пароль подобрать, то это явно будет меньше чем 10 секунд, то файл lock будет перезаписываться, тем самым не давая возможности подобрать верный пароль, а если больше 10 секунд, то будет пароль будет просто проверяться.
Все правильно ?
13.11.2016 00:27:02
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #28
RE: Вход в админку по логину и паролю
Суть заключается в том, что при переборе паролей к админке, в секунду может перебирается, например, до 100 паролей.
Скрипт проверяет на правильность первый введенный пароль и перезаписывает файл lock. Если пароль не верный, то все остальные попытки ввода пароля в течение 10 секунд после перезаписи файла lock скрипт игнорирует, даже если там указан верный пароль.
Т.е. только один пароль за 10 секунд проверяется на правильность, а остальные отметаются. Через 10 секунд после перезаписи файла lock скрипт опять готов проверить введенный пароль на правильность.

Получается что после попытки ввода пароля проверка "замораживается" на 10 секунд и игнорирует все введенные пароли. Через 10 секунд проверка "размораживается".
13.11.2016 17:06:18
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #29
RE: Вход в админку по логину и паролю
Доброе время суток, спасибо за пояснение Yes.
15.11.2016 22:25:46
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #30
RE: Вход в админку по логину и паролю
Доброе время суток, имеется вопрос, который мы с вами уже обсуждали в этой теме, но у меня не получилось реализовать, хотя воде все делал правильно.

Вопрос защиты файла или папки с помощью .htpasswd.
Проверьте, может найдете что не так.

1. Имеется папка admin, ее и будем защищать
2. Создал файл .htaccess, где
Код:
<Files .htpasswd>
deny from all
</Files>
AuthName "Authentication"
AuthType Basic
AuthUserFile D:/Site/OpenServer/domains/site.net/www/admin
require valid-ale10ey
где ale10ey - логин

3. Создал .htpasswd, где
Код:
ale10ey:yeOc.NL3JVPko
где ale10ey - логин, который указали в файле .htpasswd
yeOc.NL3JVPko - пароль ye01ela

пароль создал с помощью
PHP код:
<?php
$log
='ale10ey';
$pass='ye01ela';
if (
CRYPT_MD5 == 1) echo 'MD5: '.crypt($log,$pass).'<br>'

//или
echo md5('ye01ela');
?>
- в 1 коде при использовании логина и пароля получаем - 13-значный пароль
- в 2 коде при использовании только пароля 32-значный пароль

4. Полный путь к папке для AuthUserFile узнал с помощью <?php phpinfo(); ?>, где смотрел SCRIPT_FILENAME , когда сам файл был в папке admin, т.е тут ошибка маловероятна.

5. далее обращаемся к папке site.net/admin и появляется окно
[Изображение: tid_396_1.gif]

но при введении логина (ale10ey) и пароля (ye01ela) поля логина и пароля сбрасываются...Scratch

6. Все проверяется на локальном сервере OpenServer, проверял также на Denwer. Результат один - поля сбрасываются, доступа нет.

Может найдете, где косяк, проблема я думаю кроется в пункте 2 или 3, какая-то осталось мелочь, но никак понять не могу.
Знаю, что вы уже пробовали, но может посмотрите еще раз, что не так.

На всякий случай архив папки admin, где страницу test.php надо защитить

.rar  admin.rar (Размер: 854 байт / Загрузок: 1)
Заранее благодарен Yes.
17.11.2016 13:11:44
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru