1.12.7 i starsze - Blocks login bots
n7 - 02-04-2011, 22:17
Proszę
Chodzi mi tylko o ten styl. Z pozostałymi sobie poradzę.
maminowiec - 03-04-2011, 08:52
Proszę.
aqvario - 04-04-2011, 23:55
Powoli boty zaczynają się przebijać, wgrałem tę poprawkę ponad miesiąc temu, zgłoszenia do mnie przestały napływać. Ale analizując logi widzę, że próby logować wciąż występują, tyle, że w znacznie mniejszej ilości. No i dziś znów dostałem info od usera, że konto zablokowane.
Swoją drogą, niech ktoś napisze małą modyfikację, aby info o zablokowaniu konta szło nie tylko na konto maila usera, ale także na konto admina. Jak mam przeciwdziałać, skoro nie znam problemu? O.o Konieczne jest powiadomienie o IP, z których następowały próby logowań.
A jeśli nikt nie chce napisać takiej modyfikacji, to chociaż pomóżcie i wskażcie mi miejsce w plikach, gdzie to info jest wysyłane do usera ^^
japi55 - 05-04-2011, 20:58
aqvario napisał/a: | No i dziś znów dostałem info od usera, że konto zablokowane. |
Może to ktoś mu zrobił psikusa a nie bot?
maminowiec - 06-04-2011, 14:30
japi55 napisał/a: | aqvario napisał/a:
No i dziś znów dostałem info od usera, że konto zablokowane.
Może to ktoś mu zrobił psikusa a nie bot? |
Sprawdź IP , w edycji profilu.
aqvario - 06-04-2011, 21:36
8 marca zainstalowałem ten filtr antybotowy. Od tego czasu ilość prób logowań botów spadła drastycznie, ale nie ustała. Oto IP, z których następowało więcej niż 5 prób logowań na różne nicki (także nieistniejące). W nawiasie ilość prób z danego IP:
<table><tr><td>
38.108.126.205 [ 8 ]
46.182.126.126 [ 32 ]
50.7.240.27 [25]
50.7.240.29 [18]
50.7.240.30 [6]
62.113.219.3 [8]
62.113.219.4 [19]
62.113.219.5 [10]
62.113.219.6 [13]
66.230.230.230 [54]</td><td>
67.159.39.50 [12]
77.87.36.179 [11]
79.143.177.207 [10]
80.237.226.73 [17]
80.237.226.74 [14]
80.237.226.75 [10]
80.237.226.76 [9]
80.62.217.18 [6]
82.101.244.149 [6]
83.227.30.29 [6]</td><td>
87.118.101.175 [9]
89.187.142.208 [11]
94.23.152.124 [14]
95.211.9.22 [35]
95.64.12.53 [6]
109.195.32.200 [8]
109.230.213.62 [6]
109.230.222.59 [7]
109.230.222.61 [15]
109.230.246.100 [10]</td><td>
134.147.198.10 [9]
137.56.163.46 [68]
157.88.36.111 [8]
178.32.48.195 [7]
183.106.157.198 [6]
188.72.250.109 [8]
192.251.226.205 [106]
193.138.216.101 [13]
195.60.76.239 [24]
195.60.76.240 [25]</td><td>
195.60.76.241 [24]
199.48.147.43 [66]
199.48.147.44 [45]
199.48.147.45 [60]
204.11.224.179 [13]
208.100.56.10 [11]
212.78.238.38 [6]
216.55.170.5 [13]</td></tr></table>
Szybkie podliczenie i mam 927 prób w 29 dni, co daje średnio 32 na dzień, a więc co 45 minut coś się przebija. Inna sprawa, że rozkodowane hasło podawane jest w logach........ dostępnych po wpisaniu odpowiedniej ścieżki do admin logs. trzeba pamiętać o nadaniu odpowiednich uprawnień do pliku.
Zblokowanie tego usera, który mi to zgłosił, nastąpiło z 173.193.221.28
n7 - 06-04-2011, 22:09
@maminowiec nie działa. Przy logowaniu na admina. Przy prawidłowym nicku i haśle wyskakuje błąd.
Tutaj w forum podanym jako test do zobaczenia modyfikacji zablokowałem 2 konta przy złym podanym haśle. To na czym ten mod polega?
japi55 - 06-04-2011, 22:44
A jestes botem?
maminowiec - 07-04-2011, 15:38
japi55 napisał/a: | A jestes botem? |
dokładnie Ty nie jesteś botem.
aqvario - 08-04-2011, 01:02
Dobra, widzę, że zostałem olany. To powie mi ktoś, jak zrobić, aby także admin dostawał powiadomienie o zablokowaniu konta usera?
maminowiec - 08-04-2011, 14:25
login.php
Cytat: | if ( $row['user_email'] && $row['user_blocktime'] < (CR_TIME - 3600) )
{
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
$emailer->from($board_config['email_from']);
$emailer->replyto($board_config['email_return_path']);
$emailer->email_address($row['user_email']);
$emailer->use_template('bad_login', (file_exists(@phpbb_realpath($phpbb_root_path . "language/lang_" . $row['user_lang'] . "/email/bad_login.tpl"))) ? $row['user_lang'] : '' );
$emailer->set_subject($lang['Account_blocked']);
$emailer->assign_vars(array(
'USER' => $row['username'],
'BLOCK_TIME' => $board_config['block_time'],
'BAD_LOGINS' => ($row['user_badlogin'] + 1),
'BLOCK_UNTIL' => create_date ('D d. M, Y H:i:s', (CR_TIME + ($board_config['block_time'] * 60)), $row['user_timezone'], true),
'SITENAME' => $board_config['sitename'],
'BOARD_EMAIL' => $board_config['board_email'])
);
$emailer->send();
$emailer->reset();
} |
Wystarczy dodać swój kod do wysyłania.
n7 - 08-04-2011, 22:25
@maminowiec jak to co mi dałeś nie działa. To już nic nie da rady zrobić?
demons1 - 09-04-2011, 14:12
zainstalowane ale nadal wchodza
maminowiec - 09-04-2011, 15:26
demons1, wchodzą ? tzn logują sie i zawieszają konta czy rejestrują ?
bolo212121 - 09-04-2011, 21:21
A jam mam pytanko - jakie pliki muszę wyedytować (i ewentualnie w którym miejscu), jeżeli korzystam z modyfikacji Renger-a Okno dla niezalogowanych ?? Przy próbie logowania zwraca mi błąd pierwszy w kolejności (username)
Walczę już 2 dzień i nie mogę sam dojść
I przy okazji gratulacje dla autora za napisanie tak potrzebnej w dzisiejszych czasach modyfikacji - dzięks
[ Dodano: 09-04-2011, 22:42 ]
mam podejrzenia, że chodzi o plik index_body.tpl ale chyba za cienki na to jestem
[ Dodano: 10-04-2011, 00:59 ]
kurka - głupio tak sobie samemu odpisywać ale chyba znalazłem rozwiązanie - dodałem w dwóch miejscach dwie literki i niby działa, chociaż mam dziwne wrażenie, że to było za proste i to nie wszystko ale póki co na FF4 i IE9 okienko chodzi
Podam co i jak:
w pliku templates/subSilver/index_body.tpl przy wgranej modyfikacji Renger-a jest
Kod: | <!-- BEGIN switch_user_logged_out -->
<!--[if IE]>
<style type="text/css">
#oknologowania {
margin: auto;
z-index: 999;
position: fixed;
{ODN_POZYCJA_X};
}
* html #oknologowania { position: absolute; top: expression(parseInt({ODN_POZYCJA_Y_IE}) + ((document.body.scrollTop||documentElement.scrollTop))+'px') }
</style>
<![endif]-->
<script language="Javascript" type="text/javascript">
function setCookie(nazwa, wartosc, minuty) {
var now=new Date();
var expTime=now.getTime()+minuty*60*1000;
var expDate=new Date(expTime);
document.cookie=nazwa+"="+wartosc+"; EXPIRES="+expDate.toGMTString();
}
var textCookie=0;
function czytaj_ciacho(nazwa)
{
nazwa+="=";
startCookie=document.cookie.indexOf(nazwa);
if (startCookie==-1) {return ""}
startCookie+=nazwa.length;
if (document.cookie.indexOf(";",startCookie)==-1)
{
koniecCookie=document.cookie.length;
}
else
{
koniecCookie=document.cookie.indexOf(";",startCookie);
}
textCookie=document.cookie.substring(startCookie,koniecCookie);
}
czytaj_ciacho("odn");
if (({ODN_WLACZ} == 1) && (textCookie == 0))
{
function hide(){
document.getElementById("oknologowania").style.visibility= "hidden";
setCookie('odn',1,{ODN_CPW});
}
if(window.navigator.appName=="Microsoft Internet Explorer"){
document.write('<div id="oknologowania"><table style="opacity: {ODN_OPACITY_I}; -moz-opacity: {ODN_OPACITY_I}; -khtml-opacity: {ODN_OPACITY_I}; filter:alpha(opacity={ODN_OPACITY_M});" width="{ODN_SZEROKOSC}" class="forumline" cellspacing="1" cellpadding="3" border="0"><tr><th class="thCornerL" width="100%" height="25" nowrap="nowrap">{L_ODN_TYTUL_TEXT}</th><th align="right"><div id="zamykanie"></div></th></tr><tr><td height="40" class="row1" align="center" colspan="2"><br />{ODN_TRESC}<br /><br /><form method="post" action="{S_LOGIN_ACTION}"> {L_ODN_LOGIN} <input class="post" type="text" name="username" size="15" value=""/> {L_ODN_HASLO} <input class="post" type="password" name="password" value="" size="15" /><!-- BEGIN switch_allow_autologin --><br /> {L_ODN_AUTOLOGIN} <input class="text" type="checkbox" name="autologin" /><!-- END switch_allow_autologin --><br /><input type="submit" class="liteoption" name="login" value="{L_LOGIN}" /></form><br />{L_ODN_ZAREJESTRUJ_TEXT} <a href="{U_REGISTER}">{L_ODN_ZAREJESTRUJ}</a><br /><br /><span class="gensmall">{L_ODN_CZAS_TEXT} <span id="czas"></span></td></tr></table><br /></div>');
}
else
{
document.write('<div id="oknologowania" style="position: fixed; {ODN_POZYCJA_X}; {ODN_POZYCJA_Y}; z-index: 999; opacity: {ODN_OPACITY_I}; -moz-opacity: {ODN_OPACITY_I}; -khtml-opacity: {ODN_OPACITY_I}; filter:alpha(opacity={ODN_OPACITY_M});"><table width="{ODN_SZEROKOSC}" class="forumline" cellspacing="1" cellpadding="3" border="0"><tr><th class="thCornerL" width="100%" height="25" nowrap="nowrap">{L_ODN_TYTUL_TEXT}</th><th align="right"><div id="zamykanie"></div></th></tr><tr><td class="row1" align="center" colspan="2"><br />{ODN_TRESC}<br /><br /><form method="post" action="{S_LOGIN_ACTION}"> {L_ODN_LOGIN} <input class="post" type="text" name="username" size="15" value=""/> {L_ODN_HASLO} <input class="post" type="password" name="password" value="" size="15" /><!-- BEGIN switch_allow_autologin --><br /> {L_ODN_AUTOLOGIN} <input class="text" type="checkbox" name="autologin" /><!-- END switch_allow_autologin --><br /><input type="submit" class="liteoption" name="login" value="{L_LOGIN}" /></form><br />{L_ODN_ZAREJESTRUJ_TEXT} <a href="{U_REGISTER}">{L_ODN_ZAREJESTRUJ}</a><br /><br /><span class="gensmall">{L_ODN_CZAS_TEXT} <span id="czas"></span></td></tr></table><br /></div>');
}
}
cz = document.getElementById('czas')
function timer(cz,sk)
{
cz.innerHTML=sk
if(sk > 0)
{
set = setTimeout(function(){timer(cz,--sk)},1000)
}
if({ODN_ZAM} == 1)
{
if (({ODN_CZAS} - sk) >= {ODN_OPMZAM})
{
document.getElementById("zamykanie").innerHTML = '<a href="#" onclick="hide()"><img src="templates/subSilver/images/icon_delete.gif" border="0"></a>';
}
else
{
document.getElementById("zamykanie").innerHTML = '<span style="visibility: hidden;"><img src="templates/subSilver/images/icon_delete.gif" border="0"></span>';
}
}
if (sk == 0)
{
hide()
}
}
timer(document.getElementById('czas'), {ODN_CZAS});
</script>
<!-- END switch_user_logged_out --> |
zmieniłem dwie litery zgodnie z nazwami zmiennych $_POST wprowadzonych przez maminowiec:
username na usernamee oraz
password na passwordd
Kod: | <!-- BEGIN switch_user_logged_out -->
<!--[if IE]>
<style type="text/css">
#oknologowania {
margin: auto;
z-index: 999;
position: fixed;
{ODN_POZYCJA_X};
}
* html #oknologowania { position: absolute; top: expression(parseInt({ODN_POZYCJA_Y_IE}) + ((document.body.scrollTop||documentElement.scrollTop))+'px') }
</style>
<![endif]-->
<script language="Javascript" type="text/javascript">
function setCookie(nazwa, wartosc, minuty) {
var now=new Date();
var expTime=now.getTime()+minuty*60*1000;
var expDate=new Date(expTime);
document.cookie=nazwa+"="+wartosc+"; EXPIRES="+expDate.toGMTString();
}
var textCookie=0;
function czytaj_ciacho(nazwa)
{
nazwa+="=";
startCookie=document.cookie.indexOf(nazwa);
if (startCookie==-1) {return ""}
startCookie+=nazwa.length;
if (document.cookie.indexOf(";",startCookie)==-1)
{
koniecCookie=document.cookie.length;
}
else
{
koniecCookie=document.cookie.indexOf(";",startCookie);
}
textCookie=document.cookie.substring(startCookie,koniecCookie);
}
czytaj_ciacho("odn");
if (({ODN_WLACZ} == 1) && (textCookie == 0))
{
function hide(){
document.getElementById("oknologowania").style.visibility= "hidden";
setCookie('odn',1,{ODN_CPW});
}
if(window.navigator.appName=="Microsoft Internet Explorer"){
document.write('<div id="oknologowania"><table style="opacity: {ODN_OPACITY_I}; -moz-opacity: {ODN_OPACITY_I}; -khtml-opacity: {ODN_OPACITY_I}; filter:alpha(opacity={ODN_OPACITY_M});" width="{ODN_SZEROKOSC}" class="forumline" cellspacing="1" cellpadding="3" border="0"><tr><th class="thCornerL" width="100%" height="25" nowrap="nowrap">{L_ODN_TYTUL_TEXT}</th><th align="right"><div id="zamykanie"></div></th></tr><tr><td height="40" class="row1" align="center" colspan="2"><br />{ODN_TRESC}<br /><br /><form method="post" action="{S_LOGIN_ACTION}"> {L_ODN_LOGIN} <input class="post" type="text" name="usernamee" size="15" value=""/> {L_ODN_HASLO} <input class="post" type="password" name="passwordd" value="" size="15" /><!-- BEGIN switch_allow_autologin --><br /> {L_ODN_AUTOLOGIN} <input class="text" type="checkbox" name="autologin" /><!-- END switch_allow_autologin --><br /><input type="submit" class="liteoption" name="login" value="{L_LOGIN}" /></form><br />{L_ODN_ZAREJESTRUJ_TEXT} <a href="{U_REGISTER}">{L_ODN_ZAREJESTRUJ}</a><br /><br /><span class="gensmall">{L_ODN_CZAS_TEXT} <span id="czas"></span></td></tr></table><br /></div>');
}
else
{
document.write('<div id="oknologowania" style="position: fixed; {ODN_POZYCJA_X}; {ODN_POZYCJA_Y}; z-index: 999; opacity: {ODN_OPACITY_I}; -moz-opacity: {ODN_OPACITY_I}; -khtml-opacity: {ODN_OPACITY_I}; filter:alpha(opacity={ODN_OPACITY_M});"><table width="{ODN_SZEROKOSC}" class="forumline" cellspacing="1" cellpadding="3" border="0"><tr><th class="thCornerL" width="100%" height="25" nowrap="nowrap">{L_ODN_TYTUL_TEXT}</th><th align="right"><div id="zamykanie"></div></th></tr><tr><td class="row1" align="center" colspan="2"><br />{ODN_TRESC}<br /><br /><form method="post" action="{S_LOGIN_ACTION}"> {L_ODN_LOGIN} <input class="post" type="text" name="usernamee" size="15" value=""/> {L_ODN_HASLO} <input class="post" type="password" name="passwordd" value="" size="15" /><!-- BEGIN switch_allow_autologin --><br /> {L_ODN_AUTOLOGIN} <input class="text" type="checkbox" name="autologin" /><!-- END switch_allow_autologin --><br /><input type="submit" class="liteoption" name="login" value="{L_LOGIN}" /></form><br />{L_ODN_ZAREJESTRUJ_TEXT} <a href="{U_REGISTER}">{L_ODN_ZAREJESTRUJ}</a><br /><br /><span class="gensmall">{L_ODN_CZAS_TEXT} <span id="czas"></span></td></tr></table><br /></div>');
}
}
cz = document.getElementById('czas')
function timer(cz,sk)
{
cz.innerHTML=sk
if(sk > 0)
{
set = setTimeout(function(){timer(cz,--sk)},1000)
}
if({ODN_ZAM} == 1)
{
if (({ODN_CZAS} - sk) >= {ODN_OPMZAM})
{
document.getElementById("zamykanie").innerHTML = '<a href="#" onclick="hide()"><img src="templates/subSilver/images/icon_delete.gif" border="0"></a>';
}
else
{
document.getElementById("zamykanie").innerHTML = '<span style="visibility: hidden;"><img src="templates/subSilver/images/icon_delete.gif" border="0"></span>';
}
}
if (sk == 0)
{
hide()
}
}
timer(document.getElementById('czas'), {ODN_CZAS});
</script>
<!-- END switch_user_logged_out --> |
Co prawda opisany sposób działa, jednakże prosiłbym autora o zerknięcie w wolnej chwili i ewentualne poprawki jeżeli to nie wszystko
|
|
|