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. :)
Parašė BloodKiller· 2008 Lie. 13 01:07:10
#3
Tiesa, pamiršau paminėti vieną smulkmenėlę - šis captcha sutaps su tuo, kuris yra naudojamas registracijoje. Tai yra, jeigu bus įjungta tekstinė saugos kodo sistema, teks vesti tekstą, o ne nurašinėti nuo paveikslėlio raides. Tekstinę captcha gan nesunku apeiti. :D
Redagavo BloodKiller· 2008 Lie. 13 01:07:47
Parašė MAnjack· 2008 Lie. 13 10:07:34
#6
Blood, kai buvai dingęs, tai gal apsaugas kūrei? :D Šiaip nieko tokia, kažką tokio ir aš gavojau pasidaryt, bet paskui sugavojau, kad nervins vedinėt tą saugos kodą :D