Jump to content
php.lv forumi

Cookie id


ritogy

Recommended Posts

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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 by mad182
Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...