ritogy Posted March 1, 2011 Report Share Posted March 1, 2011 Veidoju login skriptu izmantoju cookie, lai varētu sataisī remember me lauku, bet saskāros ar problēmu. Cilvēks var ielogoties, izlogoties kā normālam login skriptam, bet ar javascript palīdzību var izmainīt lietotāja id jeb lietotāja idenfikatoru, un tādā veidā varu kļūt par jebkuru lietotāju bez jebkādas paroles, un rīkoties ar viņa datiem. Pagaidām es atradu sev risinājumu, ka varētu aizkodēt lietotāja id ar md5(), lai grūtāk būtu uzzināt lietotāja id, bet cik noprotu tas ir galīgi garām un to ātri vien apies. Ceru uz jūsu palīdzību, paldies. Quote Link to comment Share on other sites More sharing options...
briedis Posted March 1, 2011 Report Share Posted March 1, 2011 izmanto sesijas - sesiju gadījumā tas ID glabājas uz servera, nevis pie lietotāja. Ņem vērā, Cookie vērtības lietotājs var mainīt kā tīk, to nevar izkontrolēt. Quote Link to comment Share on other sites More sharing options...
ritogy Posted March 1, 2011 Author Report Share Posted March 1, 2011 izmanto sesijas - sesiju gadījumā tas ID glabājas uz servera, nevis pie lietotāja. Ņem vērā, Cookie vērtības lietotājs var mainīt kā tīk, to nevar izkontrolēt. Žēl,bet vai ir iespējams panāk ar sessiju kaut ko līdzīgu? Quote Link to comment Share on other sites More sharing options...
briedis Posted March 1, 2011 Report Share Posted March 1, 2011 Nu bet ko tad es saku? http://www.tizag.com/phpT/phpsessions.php Quote Link to comment Share on other sites More sharing options...
ritogy Posted March 1, 2011 Author Report Share Posted March 1, 2011 Par sessijām es zinu, ir jau izveidots iepriekš login skripts,bet vai var uzlikt kaut kādu laiku sessijai, cik ilgi tā būs aktīva. Quote Link to comment Share on other sites More sharing options...
m8t Posted March 2, 2011 Report Share Posted March 2, 2011 session_start(); $_SESSION['user_id'] = 1; $_SESSION['derigumaTermins'] = time()+(60*60); //1 stunda if($_SESSION['derigumaTermins'] < time()) unset($_SESSION); Quote Link to comment Share on other sites More sharing options...
mad182 Posted March 2, 2011 Report Share Posted March 2, 2011 (edited) Sesijas laiku var mainīt ar session.gc_maxlifetime un session.cookie_lifetime parametriem, bet pārlūks normālā gadījumā vienalga to nometīs pie aizvēršanas. Te gan jāievēro, ka, ja vairākas lapas glabā sesijas id vienā mapē, tad sesija dzīvos tik ilgi, cik norādīts lapai ar īsāko gc_maxlifetime, jo php tīrot sesijas nešķiros, kura lapai tās pieder. Vispār manuprāt tai "atcerēties mani" fīčai ir vairāk problēmu, kā ieguvuma. Piemēram draugiem.lv tīri labi iztiek bez. Es arī parasti to nekur nelieku. Edited March 2, 2011 by mad182 Quote Link to comment Share on other sites More sharing options...
Kemito Posted March 2, 2011 Report Share Posted March 2, 2011 Forši būtu tā: Pie ielogošanās ielaid vienā sesijā iekšā laiku, un fonā pēc noteikta laika pārlādē indeks failu, līdz ar to, ja lietotājs nevis pēc klikšķa čekosies šis laiks, bet jau fonā. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 2, 2011 Report Share Posted March 2, 2011 Kemito, bet kur problēma?? )) Izskatās, ka autors grib "rememeber me" funkcionalitāti - tikai bez iespējas to TIK vienkārši apiet. Nedomāju, ka atbilde: "Iztiec bez tā, jo Es to neizmantoju!" Viņam būtu noderīga. xD Es darītu tā, ka glabātu divus cepumus (vismaz): id, password. Protams, parolei jābūt kā minimums SHA-1 kešā, ja ne ar kaut kādām sālim un riekstiem apkrautai. Tālāk, kad notiek ielogošanās un ir ieķeksēts attiecīgais ķeksis - blakus sesijām tiek izveidoti ar minētie divi cepumi. Pēc tam, katrā lapā tiek pārbaudīts: 1) Vai eksistē sesija (vai lietotājs ir ielogojies normālajā veidā), ...ja jā, tad neradam Viņam nekādas problēmas un atļaujam dzīvoties. ) 2) Nē? Vai eksistē cepumi? 3) Eksistē? Pārbaudam doto datu pareizumu ar datubāzē esošo, pieņemto lietotāju. ...ja valīds, izveidojam sesiju (lai nākamreiz viss sāktos ar pirmo soli) un atļaujam dzīvoties. x) 4) Nav valīds? Metam Viņu ārā... xP Protams, problēma tāda, ka parole tiek glabāta uz lietotāja datora, tāpēc šo te nevajadzētu darīt uz publiskiem datoriem utml.... Ehh =P 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.