Бесплатные PHP скрипты - форум техподдержки

Бесплатные PHP скрипты - форум техподдержки

Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 17.04.2024 - 00:22:14
Страницы:  1  

Защита от brute force атак

Объявление - WR-Scriptы в UTF-8 кодировке

Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.

На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий!
Планирую продолжить работы весь 2023 год.

АвторСообщение

AntiGun

A
Участник форума

Здравствуйте!
Теоретически, злоумышленник может подобрать пароль юзера (или, что хуже, админа) простым повторением одного запроса на авторизацию, меняя в нём только пароль. Перебрать все возможные пароли - задача не из лёгких, но короткий пароль вполне может стать жертвой брутфорсера. А при достаточном терпении - и длинный.
А это значит, что нужна защита от такого рода атак.

Сообщение # 1 15.11.08 - 18:13:28

AntiGun

A
Участник форума

Подумав над сей проблемой, я сделал один очередной мод.
Привожу фрагмент кода, который и осуществляет анти-брутфорс:


Код:

//антибрутфорс
$loginname=$name;
$loginname=str_replace("\r","",$loginname);
$login name=str_replace("\n","",$loginname);
$loginname=str_replace("\t","",$loginname);
$loginname=strtolower($log inname);
$filename = "$datadir/logins.dat";
$failik = fopen($filename,"a+") or exit("chlen");
flock ($failik,LOCK_EX);
$lstext = fread($failik, filesize ($filename));
$content = explode("\n",$lstext);
$sizearray = sizeof($content);
$numofsame = 0;
$ip = getenv("REMOTE_ADDR");
$now = time();
for ($i=0; $i<$sizearray; ++$i)
{
if ($content[$i] !== "")
{
$thedt = explode("&#124;", $content[$i]);
if (($thedt[0] == $ip) &#124;&#124; ($thedt[1] == $loginname))
{
if ($now < $thedt[2]+600) { $numofsame++; }
}
}
}
if ($numofsame > 2)// если 3 или больше таких попыток
{
flock ($failik,LOCK_UN);
fclose($failik);
exit("Слишком много попыток войти. Попробуйте через 10 минут.");
}
else
{
ftruncate($failik,0);
for ($i=0; $i<$sizearray; ++$i)
{
if ($content[$i] !== "")
{
$thedt = explode("&#124;", $content[$i]);
if ($now < $thedt[2]+600)
{
$zapis = $content[$i];
fputs($failik, "$zapis\n");
}
}//end if
}//end for
fputs($failik, "$ip&#124;$loginname&#124;$now&#124;\n");
flock ($failik,LOCK_UN);
fclose($failik);
}

//конец антибрутфорса

Вот такими (или похожими) кусками кода я наполнил файлы. Кто хочет видеть их, может взять (ссылу давал в теме про мой мод SM v.1.0), теперь версия мода 1.2.5.
В качестве $name должно быть имя пользователя (модера, админа) или имя отправителя письма, извлечённое из куков.
logins.dat в случае модера-админа заменяем на loginsadmin.dat или loginsmail.dat для личных сообщений.
Вероятно, для полной защиты от брутфорсеров нужно ещё как-то проверять отправку сообщений или что-то ещё, но до этого я пока не додумался

Сообщение # 2 15.11.08 - 18:28:41

AntiGun

A
Участник форума

Заметил глюк:
во фрагменте
$loginname=strtolower($log inname);
на самом деле должно быть не ($log inname), а ($loginname)
Этот прикол возник из-за разрывания слишком длинных слов. В исходном же коде слово, конечно, не разорвано

Сообщение # 3 17.11.08 - 15:01:16

Homeless

H
Участник форума

Кто подскажет, нашел в комментариях фотогалереи вот этот кусок
YSun0Y bnnLst19hdY6llAd3fg6
это что просто нечего делать или что похуже?

Сообщение # 4 26.11.08 - 17:26:01

AntiGun

A
Участник форума

попробуй base64_decode
но если в комментах, то вряд ли стоит этого бояться

Сообщение # 5 02.12.08 - 21:36:48
Как запретить просмотр сайта с определенного IP? :Предыдущая темаСледующая тема: Защита от SQL-injection
Страницы:  1  

Сообщение
Имя E-mail
Сообщение

Нажмите на точку возле имени для обращения к участнику

Смайлы:

Ещё смайлы
Эмодзи
         
Защитный код: (введите цифры, которые на синем фоне)
Ответ на вопрос: (Какой сейчас год?)
   
WR-Счётчик
Powered by WR-Forum Professional © 2.3 UTF-8 beta версия