snach15 Posted March 11, 2011 Report Share Posted March 11, 2011 http://paste.php.lv/da2e818aa4a823e7dd45a341482cb66b?lang=php uzrakstīju pats login scriptu un tāpēc jautāju vai esmu uzrakstīji kautcik kvalitatīvi un ir kautkāda drošība? jeb bardags murgs un nekam nederīgs? esmu iesācējs takā lūdzu paskaidrojiet arī ... un otrs jautājums ir .. nekādīgi nevaru dabūt nost šo erroru .. atstarpes nav, bomi nav nekā nav viss takā vajg bet erroru met ... Warning: Cannot modify header information - headers already sent by (output started at C:\WWW\htdocs\web\engine\mysql_connect.php:9) in C:\WWW\htdocs\web\theme\default\default_theme.php on line 82 mysql_connect.php : saturs <?php $con = mysql_connect("localhost","root","xxxxxxxxxxxxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("webx2", $con); ?> Quote Link to comment Share on other sites More sharing options...
wintermute Posted March 11, 2011 Report Share Posted March 11, 2011 Tā ... Es teiktu ka tajā skriptā ir diezgan daudz problēmas: tas noteikti nav kvalitatīvi uzrakstīts kods, jo loģika ir sabāzta kopā ar html'u tiek izmantots session_register(), kas ir novecojusi ( deprecated ) funkcija sākot no 5.3.0 versijas tiek izmantots addslashes() , to vajadzētu aizstāt at mysql_real_escape_string() vispār jau jaunu kodu ar mysql_* funkcijām pat rakstīt nevajadzētu ... palasi iekš 'MySQL Forge' rindās 63 un 64 tu piešķir vērtības nepārbaudot vai tās eksistē. sql daļa ir pilnīgā dirsā paroles ir jāglabā kā vienvirziena hash'us , vēlams vismaz kā sha256 tu pārbaudi vai ir pareizs jūzeris un parole, izskaiti vai rezultāts ir tikai 1 ( izskatās ja lietotāji tabulā nav norādti kā UNIQUE ) , un pēc tam tu selectē vēlreiz to pašu tabu un skaties vai ir tāds jūzeris - KĀPĒC ?!? [*]visur ir nez kāpēc izmantot echo, lai rukātu leilus HTML gabalus, tā vietā vajadžetu būt aizētam <?php ?> tagam, tad HTMLam un tad atvērtam php tagam. [*] .. un ar php nesaistīta piezīme - mūsdienās šitā HTML neraksta. Par header() .. šitai funkcijai ir jātiek izpildītais pirms tu sāc sūtīt lapas saturu ( tavā gadījuā, tas būtu pirms <!DOCTYPE> ). Ņem vērā ka "atstarpe arī ir "saturs". Quote Link to comment Share on other sites More sharing options...
briedis Posted March 11, 2011 Report Share Posted March 11, 2011 Izskatās, ka skripts vnk paņemts no kaut kāda aizvēsturiska arhīva, neticās ka pats esi kaut ko rakstījis no tā. Quote Link to comment Share on other sites More sharing options...
snach15 Posted March 11, 2011 Author Report Share Posted March 11, 2011 wintermute - liels paldies, tūlīt mēģināšu pārakstīt no jauna .. briedis - nav nav ņemts nekas .. vnk man galīgi nebija sajēga par sessijām un īstanībā joprojām nav .. tad atradu google par sessiju reģistrēšanu un pēc loģikas vnk raksīju scriptu... Quote Link to comment Share on other sites More sharing options...
snach15 Posted March 11, 2011 Author Report Share Posted March 11, 2011 (edited) http://paste.php.lv/a8ad9bbcfdc212c2446560dd89b83f5e?lang=php tad nu lūk visu pārakstīju, bet joprojām nesapratu kāpēc nedarbojas header() funkcija ir tagad scripts kvalitatīvāks? kādas vēl kļūdas pieļāvis un kā vēl papildināt? Edited March 11, 2011 by snach15 Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted March 11, 2011 Report Share Posted March 11, 2011 http://php.lv/f/topic/7294-headers-already-sent/ Quote Link to comment Share on other sites More sharing options...
snach15 Posted March 11, 2011 Author Report Share Posted March 11, 2011 (edited) http://php.lv/f/topic/7294-headers-already-sent/ paldies tagad scripts izkatās šādi http://paste.php.lv/7f62c5a33bd2972e0963c1569d38dc8d?lang=php Edited March 11, 2011 by snach15 Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 11, 2011 Report Share Posted March 11, 2011 paroles ir jāglabā kā vienvirziena hash'us , vēlams vismaz kā sha256 Kas vainas sha1()? =/ Quote Link to comment Share on other sites More sharing options...
wintermute Posted March 11, 2011 Report Share Posted March 11, 2011 daGrevis, tam 2005ajā tika atrasta ievainojamība un 2008tajā tā tikai veiksmīgi realizēta. Un, ja palasi wikipēdijā, tad md5 ir līdzīgā stāvoklī. Protams tas viss galvenokārt attiecas uz "nesālītiem" hashiem. snach15, ehh ... nu ko tu tur vispār dari ?! funkcijas isset() un empty() nav savstaprēji aizstājamas nafig tu ierobežo simbolus, kas drīkst būt parolē ? tu glabā lietotāja parole, kā "nesālītu" hash'u padarot to ievainojamu pret kollīzijām tā vietā, lai salabotu klūdu, kas saistīta ar "header already sent" paziņojumu, tu to paslēp un paildzini laiku kurā lapa ielādējas Varbūt tomēt tev vajadzītu nedaudz pamācīties PHP, nevis lipināt kaut ko kopā no netā atrastiem fragmentiem. Quote Link to comment Share on other sites More sharing options...
snach15 Posted March 11, 2011 Author Report Share Posted March 11, 2011 wintermute : trešo punktu varētu bišk sīkāk paskaidrot? cik sapratu runa iet par .. $password = mysql_real_escape_string($_POST['password']); Quote Link to comment Share on other sites More sharing options...
wintermute Posted March 11, 2011 Report Share Posted March 11, 2011 Abi pasvītrotie vārdi tai punktā ir linki. Izlasi rakstus kas ir zem tiem, tad sapratīsi .. cerams. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 11, 2011 Report Share Posted March 11, 2011 Pēc Manām domām, SHA-1 ir pietiekami drošs, lai to izmantotu lapās..... + ja vēl ir sāls... Quote Link to comment Share on other sites More sharing options...
snach15 Posted March 13, 2011 Author Report Share Posted March 13, 2011 (edited) kurš ir labākais variants? 1. $password = 'test'; $salt = '}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN'; $hash1_sha1_double = sha1(md5($salt.$password)); 2. $password = "test"; $pass = hash('sha512', '$password'); 3. $password = "test"; $salt = '}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN'; $pass = hash('sha512', $salt . $password); Edited March 13, 2011 by snach15 Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 14, 2011 Report Share Posted March 14, 2011 $password = '123456'; // Nāk no "input'a". =] $salt = 'sāls'; // Tik nomaini! $hashed_password = sha1( $salt . $password ); P.S. Kaut kam tādam galīgi nav jēgas... $x = md5( sha1( 'doh' ) ); Quote Link to comment Share on other sites More sharing options...
Džei Posted March 14, 2011 Report Share Posted March 14, 2011 (edited) [*]vispār jau jaunu kodu ar mysql_* funkcijām pat rakstīt nevajadzētu ... palasi iekš 'MySQL Forge' Iemet plz savu redzējumu par to, kāpēc tieši mysql_* sucks. Lai kā cenšos, nu galīgi nevaru atrast iemeslu kāpēc vienkāršos un nelielos projektos izmantot pdo vai mysqli nevis mysql_ Edited March 14, 2011 by glorificus Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.