Navigacija

Vartotojų tinkle

Prisijungusių svečių: 712
Prisijungusių narių: 0
Prisijungusių narių nėra

Registruoti nariai: 25,956
Naujausias narys: saulyzas

Naujausi straipsniai

Paskutiniai nariai

MaFetas 1 savaitė
ozzWANTED 3 savaitės
saulyzas 5 savaitės
TOMIJUS 6 savaitės
Reikalas15 savaitės
Jaunelis21 savaitės
lanis21 savaitės
And2s22 savaitės
Memento Mori27 savaitės
Quwqkibor29 savaitės
asirija33 savaitės
tomeem35 savaitės
weberiz39 savaitės
mRokass41 savaitės
kartoonas42 savaitės
grunskiz45 savaitės
Bruksnys45 savaitės
illusion45 savaitės
ordo46 savaitės
Jurgaila47 savaitės

Informacija:


OS: Unknown
Naršyklė: Nežinoma
IP: 3.147.82.22
Naujienų: 529
Straipsnių: 235
Temų: 52,588
Postų: 522,537
Postų pask. parą: 0
Shout'ų pask. parą: 0
P.S.C. pask. parą: 0
Nuorodų kataloge: 13

Lankomumo Statistika

Peržiūrų šiandien: 22

Iš viso peržiūrų: 22948724

Prisijungti

REGISTRUOTIS
Nario vardas

Slaptažodis



Pamiršai slaptažodį?
Paprašyk naujo

Aktyvuoti save

Šaukykla

Jei norite rašyti žinutes, turite prisijungti.

ozzWANTED
2024 Lap. 30 15:11:14
Taip, vis dar up šypsosi

MaFetas
2024 Lap. 13 22:11:57
hey how, geras dar veikiantis saitas?

Jaunelis
2024 Lie. 25 11:07:43
Oho vis dar veikia svetainė akinanti šypsen Šimtas metų, matau Šaukykloje nuostalgija. Smagu panaršyt po forumą ir pažiūrėt senas temas šypsosi

And2s
2024 Lie. 17 19:07:04
2008 pirmą kart čia patekau, man buvo 10m ir čia pramokau programavimo.. smagu skaityti senas žinutes, tokia nostalgija akinanti šypsen ačiū Ozz kad saugoji šitą kultūrinį reliktą šypsosi

ozzWANTED
2024 Sau. 17 01:01:00
Desperatiškus komentarus šaukykloje su accountu po mėnesio prasibuvimo, ištryniau. Pasaulis ir taip juodas. Įjungiam šviesą, prašviesės. šypsosi

Šaukyklos archyvas

Apklausa

Ar esate patenkinti lietuviško vertimo kokybe?

Taip!

Taip, bet yra ką taisyti (parašysiu komentaruose)

Ne

Norėdamas balsuoti turite prisijungti.
Archyvas
Reklama 400x60
Kitoks sausainėlis (+special_id)
Forumas | Modai, įskiepiai, panelės (PHP-FUSION) | Naujų modų pristatymai

Autorius: BloodKiller Peržiūrų: 8729      Spausdinti temą
2008 Lie. 13 01:07:30          1 žinutė iš 18
Spausdinti pranešimą
Standartinis sausainėlis PHP-Fusion sistemoje yra kažkas panašaus į tai:

fusion_user=1.872ab031e6d4f347fd996aaabfd0ecb7

Na o nenorėtumėte, kad jūsų fusion_user atrodytų taip?

fusion_user=86dd43a66aae4170666177d8a57a80a1.872ab031e6d4f347fd996aaabfd0ecb7

Kuo tai geriau būtų? Kol kas dar nežinom, nes neaišku, kas per daiktas yra tas šifras vietoj 1. Na bet nuosekliai nagrinėdami straipsnį, jūs tai puikiai surpasite. :)

ALTER TABLE {prefix}users ADD special_id VARCHAR(255) NOT NULL AFTER user_status;

Dabar atsidarę register.php, susiraskite šią eilutę:
$result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status) VALUES('".$user_info['user_name']."', '".$user_info['user_password']."', '".$user_info['user_email']."', '".$user_info['user_hide_email']."', '', '0000-00-00', '', '', '', '', '', 'Default', '0', '', '', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '$activation')");




ir ją pakeiskite į:

$spec_id = md5(sha1(mt_rand()+time()).microtime());
$result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status, special_id) VALUES('".$user_info['user_name']."', '".$user_info['user_password']."', '".$user_info['user_email']."', '".$user_info['user_hide_email']."', '', '0000-00-00', '', '', '', '', '', 'Default', '0', '', '', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '$activation','$spec_id')");




Tada tame pačiame faile suraskite šią eilutę:

$result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status) VALUES('$username', '".md5(md5($password1))."', '".$email."', '$user_hide_email', '$user_location', '$user_birthdate', '$user_aim', '$user_icq', '$user_msn', '$user_yahoo', '$user_web', '$user_theme', '$user_offset', '', '$user_sig', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '$activation')");




ją pakeiskite į:

$spec_id = md5(microtime().sha1(mt_rand()+time()));
$result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status, special_id) VALUES('$username', '".md5(md5($password1))."', '".$email."', '$user_hide_email', '$user_location', '$user_birthdate', '$user_aim', '$user_icq', '$user_msn', '$user_yahoo', '$user_web', '$user_theme', '$user_offset', '', '$user_sig', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '$activation','$spec_id')");




register.php sutvarkytas. Dabar atsidarykite administration/members.php ir susiraskite šią eilutę:

$result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status) VALUES ('$username', '".md5(md5($_POST['password1']))."', '$email', '$hide_email', '', '0000-00-00', '', '', '', '', '', 'Default', '0', '', '', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '0')");




ją pakeiskite į:

$spec_id = md5(microtime().sha1(mt_rand()+mt_rand(1,2)*time()));
$result = dbquery("INSERT INTO ".$db_prefix."users (user_name, user_password, user_email, user_hide_email, user_location, user_birthdate, user_aim, user_icq, user_msn, user_yahoo, user_web, user_theme, user_offset, user_avatar, user_sig, user_posts, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status, special_id) VALUES ('$username', '".md5(md5($_POST['password1']))."', '$email', '$hide_email', '', '0000-00-00', '', '', '', '', '', 'Default', '0', '', '', '0', '".time()."', '0', '".USER_IP."', '', '', '101', '0', '$spec_id')");




Po šio pakeitimo atsidarykite maincore.php failą ir susiraskite:
$cookie_value = $data['user_id'].".".$user_pass;



tai pakeiskite į:
$cookie_value = $data['special_id'].".".$user_pass;




Dabar tame pačiame faile suraskite šią eilutę:
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id='$cookie_1' AND user_password='".md5($cookie_2)."'");



ir ją pakeiskite į:
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE special_id='$cookie_1' AND user_password='".md5($cookie_2)."'");




Po to suraskite šią eilutę:
$cookie_1 = isNum($cookie_vars['0']) ? $cookie_vars['0'] : "0";



ir ją pakeiskite į:
$cookie_1 = isset($cookie_vars['0']) && preg_match("/^[a-z0-9]+$/i",$cookie_vars['0']) ? $cookie_vars['0'] : "0";






BAIGTA. :)

Dabar išsamiai aš jums paaiškinsiu, kuo tai geriau nei paprastas ID. Matote, kai yra paprastas ID, per ciklines socket užklausas lengviau vykdyti bruteforce ataką, spėliojant vartotojų ID nei jų special_id, kurio niekas visiškai nežino ir net negali numatyti, nes jis niekur nėra skelbiamas, priešingai nei paprastas vartotojo ID - jis yra sugeneruojamas ir suteikiamas visiems skirtingas. Tokiu būdu yra visiškai užkertamas kelias bruteforce atakoms per sausainėlius.





P.S. Jeigu kils problemų, rašykite čia, nes šitos sistemos neištestavau visu 100%, tad gali būti nesklandumų.

2008 Lie. 13 01:07:16          2 žinutė iš 18
Spausdinti pranešimą
Joa gan neblogai padirbejai merkia akį
2008 Lie. 13 10:07:42          3 žinutė iš 18
Spausdinti pranešimą
Kaško nesupratau, ar durnas, bet tik tos apsaugos nesugebų įsidėt į saitą, nes tada neleidžia logintis.

2008 Lie. 13 10:07:16          4 žinutė iš 18
Spausdinti pranešimą
Šiaip galima ir papraščiau. md5 paswordą užkoduot base64(), o vėliau jį atkoduot. O išėmus iš sausainėlio tą dalį, bent jauper Operą jos atkoduoti nepavyko.
2008 Lie. 13 10:07:58          5 žinutė iš 18
Spausdinti pranešimą
Turiu laisvo laiko reiks manau išbandyti šypsosimerkia akį

Adminas - ban'o laisvė
www.KIETEKAS.com
2008 Lie. 13 12:07:09          6 žinutė iš 18
Spausdinti pranešimą
Mldc blood, šitą ir į straipsnius galima pateikt. šypsosi

BR#1, Most Wanted
2008 Lie. 13 15:07:07          7 žinutė iš 18
Spausdinti pranešimą
taip dragelis, sitas modas turi spragu, ji ikisus negalima prie svetaines prisijunt.
leisk paklaust o kurioj vietoj i db iraso special id? akinanti šypsen
tik tada kai uzsiregistruoja isnaujo matyt... o esamiem vartotojam taip ir nesukuria to special_id

2008 Lie. 13 15:07:51          8 žinutė iš 18
Spausdinti pranešimą
Nu tai ir sukurkim mes ta special_id esamiems vartotojams:

atsidarom maincore.php
susirandam
if (isset($_POST['login'])) {
        $user_pass = md5($_POST['user_pass']);
        $user_name = preg_replace(array("/\=/","/\#/","/\sOR\s/"), "", stripinput($_POST['user_name']));
        $result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_name='$user_name' AND (user_password='".md5($user_pass)."' OR user_password='$user_pass')");
        if (dbrows($result) != 0 && check_captcha($_POST['captcha_encode'],$_POST['captcha_code'])) {      
            
                $data = dbarray($result);




ir po juo pridedam si koda

if ($data['special_id'] == '') {
            $spec_id = md5(microtime().sha1(mt_rand()+mt_rand(1,2)*time()));
            $result = dbquery("UPDATE ".$db_prefix."users SET special_id='$spec_id' WHERE user_id='".$data['user_id']."'"); }




2008 Lie. 13 16:07:11          9 žinutė iš 18
Spausdinti pranešimą
Man irgi šitas klausimas buvo iškilęs. Ką darys senesnį saito nariai. Norėjau jau aš papildymą šitą įdėt.
2008 Lie. 13 23:07:42          10 žinutė iš 18
Spausdinti pranešimą
tik manycia reiktu if ($data['special_id'] == 0) { keist i if ($data['special_id'] == '') {
nes gi seno nario special_id lygus niekam
2008 Lie. 13 23:07:37          11 žinutė iš 18
Spausdinti pranešimą
Apkeiciant cookies vistiek imanoma isilauzt. Ar klystu?

ex best admin!
2008 Lie. 13 23:07:13          12 žinutė iš 18
Spausdinti pranešimą
nu su situ kazi id tai nezinai special to šypsosi cookiuose tai hasha gaudavai ir id suzinodavai nario ir vsio sukeisti refresh ir turi o cia vietoj id eina special_id


2008 Lie. 13 23:07:26          13 žinutė iš 18
Spausdinti pranešimą
Isilauzti imanoma bet reikia zn user_id='1' special_id bei jo hasha juokiasi
2008 Lie. 14 08:07:20          14 žinutė iš 18
Spausdinti pranešimą
Nu ačiū chipass, bet man vistiek neįrašo po tavo pakeitimo į db special_id. galvoja


Redagavo Kelmas 2008 Lie. 14 08:07:38
2008 Lie. 14 09:07:09          15 žinutė iš 18
Spausdinti pranešimą
Bandyk taip:
if (!isset($data['special_id'])) {

Be to manau naudojant šitą kodą maincore.php, dalies kodo nelabai ir reikia. Tingiu plčiau aiškint. Kam reikės tas supras :D
2008 Lie. 14 09:07:30          16 žinutė iš 18
Spausdinti pranešimą
Dėl to kur įrašo jau įsirašiau automatiškai naujam faile sugeneraves, bet vistiek šūdas nelogina.

Šitą apsaugą reikia visa perašyt, nes užreginau naują userį irgi taspats.


Redagavo Kelmas 2008 Lie. 14 09:07:39
2008 Lie. 16 20:07:42          17 žinutė iš 18
Spausdinti pranešimą
nieko perasinet nereikia... viskas kuo puikiausiai vekia... su mano duotu kodu tuo labiau veikia. ir prie nauju useriu prideda ta id. tad pasinagrinek daugiau, pamastyk ir susitvarkysi.
2010 Bir. 16 21:06:45          18 žinutė iš 18
Spausdinti pranešimą
kame beda dabar man meta jog neteisingas nario vardas ar slaptazodis

Peršokti į forumą: