Jump to content
php.lv forumi

Aleksejs

Moderatori
  • Posts

    4,584
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Aleksejs

  1. Izmantojam, kur vien varam sha() nevis md5() http://www.securityfocus.com/bid/11849/discussion/
  2. Citāts no Forumu Lietošanas Noteikumiem (Nu tiem, kas lapas augšā): Izlasiet savu uzrakstīto jautājumu pats piecas reizes. Palūdziet, lai to izlasa kolēģis un pasaka, vai saprata, ko jūs ar to vēlaties uzzināt. Ja jums ir kāda problēma ar skriptu, kā rezultātā ir radusies jums nesaprotama kļūda, tad citējiet pilnībā kļūdas tekstu, ieskaitot arī to, kurā rindiņā tā ir radusies, kā arī nepieciešamo koda gabalu. Tieši tas pats attiecas arīdzan uz MySQL vai citu DB funkcijām. Citējiet gan pašu SQL pieprasījumu, gan atgriezto kļūdas paziņojumu. Mēs tacu neesam gaišreģi un nezinām, kas tieši tev nedarbojas.
  3. Turpinām lekciju (-; Nepiekrītu, jo tikpat labi, hakeris redz, ka iekš PHP ir izmantots nevis md5(parole) bet gan md5(rot13(parole)). Jēga no rot(13) būtu, ja to izmantotu jau klienta pusē - tas ir visdrīzāk ar JavaScript, bet tādā gadījumā, ja JavaScript izmantošana ir pieņemama, mēs vispār varam izmantot aes() JavaScript realizāciju un mums paverās iespēja realizēt jau kādu ChallengeResponse protokolu. Jā, bet nozogot citā vietā līdzīgu datubāzi, ja tiek izmantots pliks md5(parole) uzreiz ir redzams, kuras paroles ir vienādas. Tas pats attiecas uz vienādām parolēm vienas datubāzes robežās. Jā, bet vairākkārtēja hashoshana, dod to, ka nav gatavas optimizētas ātras programmas, kas veic pilno pārlasi (ar vai bez vārdnīcas) - tātad hakerim IR grūtāk nekā standarta gadījumā. Protams neviena no šīm metodēm neaizsargā, ja lietotājs ir izvēlējies vienkāršu, īsu paroli. Bez tam, ja tiek izmantota vairākkārtēja hashošana hakerim ir jāveic uzreiz visa h(h(h(p))) kaskāde, jo salīdzināt jau viņš var tikai ar visas kaskādes vērtību - starprezultātus jau viņš nezin un tas arī būtu pārāk darbietilpīgi vispirms atrast tādu 32 simbolu virkni G, kura dod G = h(h(p)), tad meklēt tādu N, ka N = h(parole) un visbeidzot atrast tādu paroli, kuras hash vērtība būtu vienāda ar N Vispār jau vieglāk ir nočiept brīdī, kad lietotājs sūta HTML POST datus, kuri (ja nav izmantots SSL) arī ir nešifrētā veidā. Ja jau ir pieeja MySQL logiem, tad pat, ja izmanto SSL, var norādīt Web serverim, lai tas logo visus atsūtītos datus... Lūk šim gan es piekrītu.
  4. Aleksejs

    php

    No šiem nekas neder? Un, nē, pats tādus skriptus neizmantoju - nav vajadzības. Ja vajadzētu, tad visdrīzāk taisītu pats no 0, norādītos skriptus izmantojot iedvesmai.
  5. Tāpēc, ka pirmais ir JavaScript, kas izpildās uz klienta datora, bet otrais ir PHP, kas izpildās vēl pirms klients ir ticis pie teikšanas. Reāli klientam izskatisies pēc tā, kā PHP bus noparsējis skriptu šādi: <body onunload="">
  6. Datubāzē parasti md5 attēli glabājas kā teksts. respektīvi ar simboliem pierakstīts kaut kas tjipa: AFF2341152DE28321EE33121231312 paroli tajos burtos nesaskatīt.
  7. Ko nozīmē apgriežot? Datubāzē šajā gadījumā glabājās pēc izskata līdzīga 32 (vai cik tur) hex simbolu virkne. Teiksim 12ad45eef03211ac12ad45eef03211ac šī virkne savukārt tika izveidota, kā: md5(aleksejs137ac5dd2ee5137ac5dd2ee5137ac5dd2ee5AleksejaParoleSālsveertiiba), utt...
  8. Nav tiesa :) Kā reizi pieredzējis atslēdznieks pasauks santehniķi, lai tas arī visu izdara :) Labais! Žetons.
  9. Manuprāt nekā īpaši paranoidāla nav, jo: 1) Sarežģītība paliek tāda kāda bija 2) Nekādas atšķirības nav, vai glabāt vienkārši md5(), vai arī md5() vairākkārtējus attēlus 3) md5() vietā jau sen iesaka lietot sha() (ja sha() būtu standartfunkcija, kas būtu pieejama bez papaildus muduļiem, sen jau vajadzētu izmantot to). 4) ir pieejamas ļoti optimizētas gatavas programmas, kas ar pilno pārlasi meklē izmantotās atslēgas, ja tiek izmantota vienkārša hash funkcija. Vairākkārtēju hash attēlu pārbaudei plašai publikai pieejama labi optimizēta programma man nav zināma. 5) Neļauj izmantot universālas iepriekšizrēķinātas hash tabulas.
  10. Lai sabojātu dzīvi sliktajiem puikām ieteiktu glabāt kaut ko tjipa: md5( $username . md5( $username . md5( $username . $password . $salt) . $password . $salt) . $password . $salt); Kur $salt ir projektam unikāla simbolu virkne. (-; Nevis vienkārši md5($password).
  11. Es arī sākumā gribēju ieteikt intval, bet problēma rodās, ja jāapstrādā, piemēram, 30 simbolu garas ciparu virknes - tādā gadījumā intval nedos pareizu rezultātu. vai šāda problēma ir aktuāla šī jautājuma autoram, tas jau ir cits jautājums. P.S. XSS laikam domāts Cross Site Scripting
  12. Esmu gatavs piedalīties ar materiālajiem līdzekļiem. P.S. Kaut gan nepiekrītu tam, ka caurumainība ir opensource blakusefekts. Manuprāt tā ir programmizstrādes kā tādas blakusprodukts neatkarīgi no koda licencēšanas noteikumiem.
  13. Kāds ir jau NVU lietojis? Izskatās interesanti - katrā gadījumā labums, ka darbojas uz vairākām platformām.
  14. Paskaidro sīkāk/savādāk, ko tieši tu gribi. No tā ko tu pateici neko dižu ieteikt tev nevar...
  15. Jābūt: <form name="theClock"> <input type=text name="theTime" size=8> </form>
  16. Regulārās izteiksmes galīgi nav mana stiprā puse, bet, ja vajag tikai ciparus, tad: ereg_replace('![0-9]','',$data);
  17. Varbūt tad jau: if(!$_REQUEST) exit; Ja nu GET mainīgie arī skaitās...
  18. Sāku rakstīt atbildi un sapratu, ka neesu sapratis problēmu laikam (-; Vai problēma ir: a) ir lapa none.php, kurai būtu jāstrādā tad un tikai tad, ja tai ir padoti pareizie GET/POST mainīgie? b) ir lapa none.php, kuru nedrīkstētu izsaukt pa tiešo, kā none.php, bet tikai includēt, vai requirot? Kā būtu ar šādu variantu problēmai b): <?php if($SERVER['PHP_SELF'] != 'pareiza_lapa.php'){ header('HTTP/1.0 404 Not Found'); exit; } ?>
  19. Šiem mērķiem mēdz izmantot tā saukto "round robin" datubāzi: tajā ir fiksēts skaits ierakstu. Ieskatam:http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/index.html Savukārt pašus apache logus ar logrotate regulāri arhivē.
  20. Tādas vienas PHP vai PHP standartbibliotēku funkcijas, kas darītu visu tevis minēto, manuprāt nav.
  21. Tas tiek atstāts klienta ziņā. Protams... vari taisīt visādas izvirtības ar JavaScript, kurš onchange pārķer teiksim latīņu/latviešu simbolus un pārkodē uz krievu valodu, taču tas, manuprāt, ir lieki.
  22. Paskatījos... uz ~10 projektiem ~ 150 developeru (protams, jautājums, cik no viņiem aktīvi)... Un norēķini notiek tjipa ar PayPal laikam...
  23. Lūk tieši šo lietu dēļ mācīties programmēt iesaka ar Pascal vai kautko tamlīdzīgu - ļoti iedresē būt kārtīgam un pēc iespējas racionālāk izmantot definētos mainīgos. (-;
  24. nu viena no metodēm: Ielasām kārtējo faila rindiņu mainīgajā. Sadalām mainīgo masīva elementos ar explode(' ', $mainigais) masīva 0-tais elements būs faila nosaukums - tātad to pievienojam masīvam $faili visu pārējo izņemot 0-to elementu ar implode(' ', $masivs) ieliekam kā masīva $apraksts elementu. atkārtojam, kamēr nav beidzies fails.
×
×
  • Create New...