Re: apsisaugom nuo XSS ataku

Netycia atradau tema sia. Tai pasidalinsiu mintimis. MD5 nera nenuliauziamas. Jis koduojamas tik i viena puse. Taciau jis buna visada vienodo ilgio. Tad yra tikimybe, kad slaptazodis gali buti ir aa ir bb ir t.t. Tiksliai nera zinoma, kiek kartu gali pasikartoti slaptazodis bet jis tikrai gali. :-)

Lukas>>
tu gal ir teisingai aprasei bet nauda kad bus 4 md5 naudojama labai maza (nes jau minejau kad gali slaptazodziai atitikti.). tu realiai sukurti vistiek viena pass.

geriau butu:

<?php
$secret_tokken = 'hackedByMy';
$pass = md5(Pass) . md5($secret_tokken);//sukuriam 2 ilgesni rakta nei md5, 
?>

arba trumpesni

<?php
$pass = 'lasld'.md5(Pass) . 'fgfg';
?>

Daug galimybiu sauguma uztikrinti. galima ir su laiku pazaisti irgi saugu slaptazodi padaryti. Esme stengtis kad nebutu md5 ilgio. nes taip daug saugiau. :-)

Re: apsisaugom nuo XSS ataku

Iš tikro reikia stengtis, kad nedaeitų reikalas iki md5 iškodavimo :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Re: apsisaugom nuo XSS ataku

arba kita iseitis, susikurti kazkoki doc.mysql.lt ir deti straipsnius/mintis ale beleka kas idomu/naudinga.

Nors tai jau kiek zinau buvo tokiu "projekteliu" bet kodel nepabandzius? :)

Ai nors gal nusisneku, yra coders.lt kur kazkada pats dejau tuos straipsnius, bet taip ir liko mires projektas (gal klystu nezinau)

Re: apsisaugom nuo XSS ataku

Jei svarbu, tik tai, kad hakeris priėjęs prie duombazės ir gavęs md5 hash'ą, pagal rainbow tables jo neatkoduotų tai galima daryti labai paprastai - sugeneruojam md5 string'ą, tada jį "sukarpom", sudeliojam pagal save (tarkim vidurys pradžioje, galas viduryje ir t.t.) ir įrašom į duombazę. Hakeris, gavęs priėjimą prie duombazės įrašo vistiek negalės atkoduoti, nes jam reiks sužinoti ir algoritmą, kuriuo md5 "sukarpytas". Kadangi visi md5 yra vienodo ilgio bei "panašiai" atrodo, labai didelė tikimybė, kad hakeriui net nešaus į galvą jog šitas string'as iš tikro yra dar kažkaip sudeliotas iš originalaus md5 string'o.

Re: apsisaugom nuo XSS ataku

aegis wrote:

Jei svarbu, tik tai, kad hakeris priėjęs prie duombazės ir gavęs md5 hash'ą, pagal rainbow tables jo neatkoduotų tai galima daryti labai paprastai - sugeneruojam md5 string'ą, tada jį "sukarpom", sudeliojam pagal save (tarkim vidurys pradžioje, galas viduryje ir t.t.) ir įrašom į duombazę. Hakeris, gavęs priėjimą prie duombazės įrašo vistiek negalės atkoduoti, nes jam reiks sužinoti ir algoritmą, kuriuo md5 "sukarpytas". Kadangi visi md5 yra vienodo ilgio bei "panašiai" atrodo, labai didelė tikimybė, kad hakeriui net nešaus į galvą jog šitas string'as iš tikro yra dar kažkaip sudeliotas iš originalaus md5 string'o.

Labai klaidingai mastai.

Aš visiem bandau įkalti tokią vieną svarbią taisyklę, kurios laikydamasis programuotojas palengvis sau gyvenimą ilguoju periodu:

Programa turi būti saugi, net ir turint jos išeities kodus.

Kitaip sakant, PHP kodą gali duoti bet kam, bet jie neturi galėti nulaužti uždaros sistemos.

Na aišku tai yra viena iš daugelio taisyklių kalbant apie patikimas ir saugias programas, bet ją tikrai reikia suprasti ir jos laikytis. Tai ką tu, aegis, siūlai - tai yra "paslėpti" kažką kode, ir tipo tai jau kažkaip padidins saugumą. Programos ar sistemos saugumumo lygis yra lygis silpniausios posistemės saugumo lygiui. Tavo atveju užteks vienam "hackeriui" gauti išeities kodą, ir ištisos programų instaliacijos taps mažiau patikimos. Ta bandoma sumodeliuoti situacija, kad kažkas gauna priėjimą prie DB, bet nemato PHP kodo, bus supainionas, tai patikėk taip nebus, nes labai greitai bus aptikas tas tavo algoritmas. Esu radęs el. parduotuvių, kuriose yra SQL injectionai, o slaptažodžiai koduojami savu algoritmu. Su SQL injectionu aš galiu gauti užkoduotą slaptažodį, bet nematau PHP kodo, kaip jis yra užkoduojamas. Algoritmas buvo rastas per porą dienų, grynai iš sportinio intereso. Ir ten tikrai buvo sudėtingiau negu md5 hash'o sumaišymas.

26 (edited by aegis 2010-07-22 15:13:18)

Re: apsisaugom nuo XSS ataku

minde wrote:
aegis wrote:

Jei svarbu, tik tai, kad hakeris priėjęs prie duombazės ir gavęs md5 hash'ą, pagal rainbow tables jo neatkoduotų tai galima daryti labai paprastai - sugeneruojam md5 string'ą, tada jį "sukarpom", sudeliojam pagal save (tarkim vidurys pradžioje, galas viduryje ir t.t.) ir įrašom į duombazę. Hakeris, gavęs priėjimą prie duombazės įrašo vistiek negalės atkoduoti, nes jam reiks sužinoti ir algoritmą, kuriuo md5 "sukarpytas". Kadangi visi md5 yra vienodo ilgio bei "panašiai" atrodo, labai didelė tikimybė, kad hakeriui net nešaus į galvą jog šitas string'as iš tikro yra dar kažkaip sudeliotas iš originalaus md5 string'o.

Labai klaidingai mastai.

Aš visiem bandau įkalti tokią vieną svarbią taisyklę, kurios laikydamasis programuotojas palengvis sau gyvenimą ilguoju periodu:

Programa turi būti saugi, net ir turint jos išeities kodus.

Kitaip sakant, PHP kodą gali duoti bet kam, bet jie neturi galėti nulaužti uždaros sistemos.

Na aišku tai yra viena iš daugelio taisyklių kalbant apie patikimas ir saugias programas, bet ją tikrai reikia suprasti ir jos laikytis. Tai ką tu, aegis, siūlai - tai yra "paslėpti" kažką kode, ir tipo tai jau kažkaip padidins saugumą. Programos ar sistemos saugumumo lygis yra lygis silpniausios posistemės saugumo lygiui. Tavo atveju užteks vienam "hackeriui" gauti išeities kodą, ir ištisos programų instaliacijos taps mažiau patikimos. Ta bandoma sumodeliuoti situacija, kad kažkas gauna priėjimą prie DB, bet nemato PHP kodo, bus supainionas, tai patikėk taip nebus, nes labai greitai bus aptikas tas tavo algoritmas. Esu radęs el. parduotuvių, kuriose yra SQL injectionai, o slaptažodžiai koduojami savu algoritmu. Su SQL injectionu aš galiu gauti užkoduotą slaptažodį, bet nematau PHP kodo, kaip jis yra užkoduojamas. Algoritmas buvo rastas per porą dienų, grynai iš sportinio intereso. Ir ten tikrai buvo sudėtingiau negu md5 hash'o sumaišymas.

Visą tą aš suprantu, tiesiog, mano žiniomis, šiuo metu labiausiai paplitęs "nulaužimo" būdas yra būtent sql injectionai. Todėl ir parašiau "jei svarbu tik tai...." :)
Aš nesiūlau nieko paslėpti kode ir nesakau, kad programa nuo to tampa 100 procentų saugi. Neįsivaizduoju koks puslapis būtų saugus kai hakeris turi ir išeities kodus IR priėjimą prie duombazės. Ką aš siūliau yra lygiai tas pats kas koduoti slaptažodžius md5 + salt. Gi to nelaikai "paslėpimo kažko kode"?