Parašė BloodKiller· 2008 Lie. 13 01:07:37
#1
Gerai, per sausainėlius bruteforce ataka neįmanoma. Bet juk galima surinkti visų vartotojų vardus ir tuomet mėginti jungtis jų vardais ir spėjamais slaptažodžiais. Taip būtų sukurta kartu ir dalies vartotojų special_id surinkimo sistema. Bet ar nuo to apsisaugoti įmanoma? Žinoma, kad taip! Tiesiog tereikia sukurti sistemą, kuri "lieptų" vartotojui įvesti saugos kodą prieš jungiantis. Taigi, pradėkime kurti saugesnį rytojų...
Visų pirma, ką jūs turite padaryti, tai atsidaryti login.php failą (ne visi jungiasi per "Prisijungti" panelę :D).
Susirandate login.php štai ką:
echo "<div align='center'>
<form name='loginform' method='post' action='".FUSION_SELF."'>
".$locale['061']."<br>
<input type='text' name='user_name' class='textbox' style='width:100px'><br>
".$locale['062']."<br>
<input type='password' name='user_pass' class='textbox' style='width:100px'><br>
<input type='checkbox' name='remember_me' value='y'>".$locale['063']."<br><br>
<input type='submit' name='login' value='Login' class='button'><br>
</form>
<br>
</div>\n";
ir visa tai keičiate į:
iinclude LOCALE.LOCALESET."register.php";
echo "<div align='center'>
<form name='loginform' method='post' action='".FUSION_SELF."'>
".$locale['061']."<br>
<input type='text' name='user_name' class='textbox' style='width:100px'><br>
".$locale['062']."<br>
<input type='password' name='user_pass' class='textbox' style='width:100px'><br>
<input type='checkbox' name='remember_me' value='y'>".$locale['063']."<br><br>
<input type='submit' name='login' value='Login' class='button'><br>
<table align='center'>
<tr><td class='tbl'>".$locale['504']."</td><td>".make_captcha()."</td></tr>
<tr><td class='tbl'>".$locale['505']."</td><td class='tbl'><input type='text' name='captcha_code' class='textbox' style='width:100px'></td></tr>
</table>
</form>
</div>\n";
Dabar atsidarote infusions/user_info_panel/user_info_panel.php ir susirandate tai:
echo "<div align='center'>
<form name='loginform' method='post' action='".FUSION_SELF."'>
".$locale['061']."<br>
<input type='text' name='user_name' class='textbox' style='width:100px'><br>
".$locale['062']."<br>
<input type='password' name='user_pass' class='textbox' style='width:100px'><br>
<input type='checkbox' name='remember_me' value='y' title='".$locale['063']."' style='vertical-align:middle;'>
<input type='submit' name='login' value='".$locale['064']."' class='button'><br>
</form>
<br>\n";
Visa tai keičiate į
include LOCALE.LOCALESET."register.php";
echo "<div align='center'>
<form name='loginform' method='post' action='".FUSION_SELF."'>
".$locale['061']."<br>
<input type='text' name='user_name' class='textbox' style='width:100px'><br>
".$locale['062']."<br>
<input type='password' name='user_pass' class='textbox' style='width:100px'><br>
<input type='checkbox' name='remember_me' value='y' title='".$locale['063']."' style='vertical-align:middle;'>
<input type='submit' name='login' value='".$locale['064']."' class='button'><br>
<table align='center'>
<tr><td class='tbl'>".$locale['504']."</td><td>".make_captcha()."</td></tr>
<tr><td class='tbl'>".$locale['505']."</td><td class='tbl'><input type='text' name='captcha_code' class='textbox' style='width:100px'></td></tr>
</table>
</form>
<br>\n";
Na o dabar reikės atsidaryti maincore.php ir susirasti šią eilutę:
if (isset($_POST['login'])) {
Po to netoliese surandate
if (dbrows($result) != 0) { ir tai pakeičiate į:
if (dbrows($result) != 0 && check_captcha($_POST['captcha_encode'],$_POST['captcha_code'])) {
Štai ir viskas. Dabar visi vartotojai turės įvesti saugos kodą, jei norės prisijungti prie jūsų tinklapio. Jei kodas bus neteisingas, rodys, jog neteisingas vardas arba slaptažodis, t.y., neprijungs vartotojo prie tinklapio. :)