Jump to content
php.lv forumi

elle ar lietotāju autorizāciju


shurix

Recommended Posts

Cik droši ir lietotājam ielogojoties visu viņa informāciju ielikt sesijā un tad tālāk ar to strādāt? Piemēram vai lietotājs ir admins vai nav glabāt sesijā. Ir kāds variants kā ļaundaris varētu pats pamainīt to kas sesijas mainīgajā ierakstīts? vai arī labāk būtu pārlādējot lapu katru reizi no datubāzes vilkt lietotāja datus no jauna? Ja glabā sesijā admina tiesības tad ja viņas tiek noņemtas lietotājs tāpat ir admins līdz sesijas beigām? Tas arī īsti neder. Varbūt ir citi varianti kā noteikt ir admins vai nav?

Link to comment
Share on other sites

Es tā īsti nemācēšu atbildēt, jo pats sesijām neuzticos. Manā gadijumā vienmēr sessijai tiek glabāts 1 unikāls id hash veidā kurš ir kā shortcut uz vienu no maniem memcached aktīvajiem ierakstiem. Protams ieturot timeouts lai dati neparkrajas pari galvai.

Link to comment
Share on other sites

Vispārīgi runājot - tas atkarīgs no drošības modeļa.

Vai sliktais var, vai nevar izmainīt sesijas datus ir atkarīgs no tā, kādā veidā šie sesijas dati tiek glabāti.

Kritiskām operācijām - datu labošanai, lietotāju veidošanai utt. var katru reizi vērsties pie DB, lai pārliecinātos, ka lietotājam ir attiecīgās tiesības.

Mazāk destruktīvām lietām - iespējams, pietiek ar sesijā saglabāto lietotāja līmeni.

Link to comment
Share on other sites

Kā viņi būtu jāglabā lai būtu droši?

Man pašlaik pie ielogošanās visu users tabulas rindu ieliek sesijā izņemot paroli un salt.

$_SESSION['user_name'] = shurix, $_SESSION['user_avatar'] = 0, $_SESSION['user_acc'] = 129 utt

Un tad ja kaut kur vajadzīgs pārbaudīt vai ir admins, piemēram footerī, lai rāda linku uz admin paneli pielietoju vnk salīdzinājumu

if $_SESSION['user_acc'] > 0 rādīt linku.

Cik šāds variants ir drošs?

Negribās pārāk noslogot db katru reizi prasot vai ir admin vai nav, jo it kā tāpat ja prasa db pēc $_SESSION['user_id'] to jau tad ar var nomainīt?

Link to comment
Share on other sites

Un ko tu sāksi darīt pie tā, kad vadīsi ārā sessijā ievadītos datus ?

Teiksim tu izveido sessiju, kurā uzglabā pēc autorizācijas attiecīgi par piemēru ņemsim segvārdu. Tu to izvadi āŗā, bet ja tev pastāv tāda lieta kā labošana, un tu veic uzlabojumu datubāzē, manuprāt baigās kakas var sanākt !

Es tuvi tā pat kā EdgarsA izmantoju, protams, pats esmu lāga iesācējs, un nepratīšu mācīt !

Ieteikums manuprāt būtu, uzglabāt IDentifikātoru, pēc autorizācijas, un pēc tā arī vadīties !

Runājot par "adminu" klasēm nemācēšu tev atbildēt.

Link to comment
Share on other sites

Tu vari iekešot sesijā lietotāja datus. bet datus iekešot var arī citur.. :)

Principā jautājums ir par to, cik uzticama ir lietotāja datu kešošana sesijā. Ja vari noķert izmaiņas, pieņemsim, sesijā saglabājot id un timestamp, un katru reizi pārbaudīt, vai id un timestamp ir derīgs - ja tabulā timestamp ir mainīts, tad vilkt datus par jaunu.

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...