Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Второй пароль на админку

Второй пароль на админку


     26.03.2012    Общие вопросы по PHP, Хаки    2567

вопрос
Хочу поставить на админку второй пароль при входе. Добавил скрипт в начало админ.php, подобрал уже не помню где...
$q_ = array( "логин" => "хеш md5" );
if (!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_PW']) !==  $q_[ $_SERVER['PHP_AUTH_USER'] ])
{
header('WWW-Authenticate: Basic realm=""');
header('HTTP/1.0 401 Unauthorized');
$ip = getenv ("REMOTE_ADDR");
$log = fopen("ip.txt", "a+");
fwrite($log, "// ".$ip."\n");
fclose($log);
exit("Ошибка авторизации!");
}

Работает сносно, но хочется убрать дубли ip в записи ip.txt скажем за 30 минут сессии, а то получается, что при бруте админки лог файл разбухает одним и тем же ip-шником. И хотелось бы добавить в лог ошибочной авторизации дату/время, и автоматически выкидывать в корень сайта после неудачной авторизации. Подскажите плиз, если не сильно затруднит, а то для меня это пока почти темный лес, увы.

Ответил: rashpil


Что подсказать то?
Как записать дату? Очень просто. Для начала нужно структурировать данные записываемые в файл. Например сделать разделители между строками, а так же между элементами записи. И уже записывать айпишник, дату создания записи. И разделить их чем-нибудь вроди |, что никогда не встретится ни в айпишнике ни в дате. И уже записывать это дело в файл

Как убрать дубли? Очень просто. А при обработке, взять содержимое файла как строку, разделить на строки (explode), дальше разделить строку на элементы двумерного массива и уже в ней смотреть. Если в элементах массива уже замечен такой айпишник, то получить его ключ и проверить дату. Если дата отлична от текущей более чем на 30 минут, то запись не делать.

Как сделать перенаправление на главную в случае неудачной попытки? Ещё проще чем работать с файлами. Строка 10 вашего кода с функцией exit должна быть заменена на строку с функцией header(); где параметром к ней послужит тип редиректа и УРЛ вашего сайта.

Если вы всётаки пробовали программировать на php, а то о чём я вам написал не могло, то рекомендую почитать документацию по работе с массивами, функциям: date(), header(). search_array(). Вроди и всё. Успехов fellow

Комментарии пользователей (4)

Vozemz
7

47 | 44

Vozemz - 26 марта 2012 22:40 - Юзер

rashpil, большое спасибо за такой доброжелательный ответ. А то некоторые мудаки тыкнули бы пару строчек кода, и разбирайся мол сам, что для чего... А тут видно, действительно человек помочь хочет, столько времени на текст потратил. Еще раз большое спасибо за потраченное время и содержательный ответ, очень мне помог, пошел документацию читать.

Osima
4 | 4

Osima - 27 марта 2012 22:48 - Юзер

Хочу тоже в админку второй пароль, а то пытается лезть кто попало постоянно. Логин понятно, а что такое хеш md5 и откуда мне его взять? Я попробовал в яндексе поискать: хеш md5, страниц много, но я ничего не понимаю в этих кодах. Только если действительно захотите помочь то не посылайте и меня справочник читать, лучше на пальцах, для меня язык глухонемых как родной belay

Vozemz
7

47 | 44

Vozemz - 28 марта 2012 13:25 - Юзер

Возьми нужный пароль и закодируй его на хоть на этом онлайн сервисе _http://www.adamek.biz/md5-generator.php в md5. Кодирует только в одну сторону, т.е раскодировать пароль уже сложно. Полученный результат вставь в скрипт, вместо надписи хеш md5, вместо слова логин - любой логин. Скрипт добавить в admin.php сразу после <?php. Строки 6-9 из скрипта выкинь, они в таком виде никому не нужны, а привести их в нормальный вид мне сложно, даже после очень полезного совета учебник читать... smile

Читаю в свободное время, конечно не вредно и времени мало, но может для тех, кому это просто, пару строчек в код допишут, а то у меня это чтение... лучше один раз увидеть.

G-Force
6

161 | 45

G-Force - 23 ноября 2012 19:40 - Юзер

как сделать дату и время чтобы писало ip.txt и блокировало человека ip при 10 ошибок &

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы