shurix Posted December 3, 2010 Report Share Posted December 3, 2010 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? Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted December 3, 2010 Report Share Posted December 3, 2010 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. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted December 3, 2010 Report Share Posted December 3, 2010 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. Quote Link to comment Share on other sites More sharing options...
shurix Posted December 3, 2010 Author Report Share Posted December 3, 2010 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? Quote Link to comment Share on other sites More sharing options...
Kemito Posted December 3, 2010 Report Share Posted December 3, 2010 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. Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted December 4, 2010 Report Share Posted December 4, 2010 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. 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.