Aleksejs Posted July 16, 2013 Report Share Posted July 16, 2013 Vēl viens scenārijs, kurā vienas sesijas ietvaros cilvēkam lēkā IP adrese ir pieslēgums caur mobilo operatoru (it īpaši tas attioecas uz Tele2, kuram pat IP adrešu diapazonu nav tik viegli nodefinēt) - ja izmanto Tor - tad vispār... Ja Tev ir nopietna sistēma, tad IP adreses maiņa jāuzskata par anomāliju un atkarībā no apstākļiem, iespējams, sesija ir jāpārtrauc, vai jāveic pārautentifikācija. Katrā gadījumā jāvāc statistika par sesijas ietvaros notikušajām pārejām no vienas IP uz otru un jāmēģina saprast tendence, ja arī neaizsargās pret īpaši uz vienu lietotāju tēmētu uzbrukumu, tad varētu diezgan ātri konstatēt uzbrukuma mēģinājumu sistēmai kopumā. Quote Link to comment Share on other sites More sharing options...
codez Posted July 16, 2013 Report Share Posted July 16, 2013 (edited) krister_Z, kodu var apskatīties un linkot no githuba: https://github.com/EllisLab/CodeIgniter/blob/develop/system/libraries/Session/drivers/Session_cookie.php#L417 Kā redzams, šajā rindā tiek pārbaudīts, vai $this->sess_match_ip === TRUE Bet defaultā vertība ir false: https://github.com/EllisLab/CodeIgniter/blob/develop/system/libraries/Session/drivers/Session_cookie.php#L82 Tātad ip pārbaude ir papildus fīča, kuru var pieslēgt, bet nav defaultā. Bet vispār CI kūkiju bibliotēka ir diezgan dīvaina, dēļ tā, ka visi dati tiek kriptēti un glabāti pašos kūkijos. Manuprāt tas ir neefektīvi, jo šie dati tiek sūtīti katrā pieprasījumā, tai skaitā ajax un resursu failiem. Es parasti daru tā, ka kūkijos glabāju tikai vērtību, pēc kuras var noteikt uz kuru sesiju vai lietotāju tā attiecas. Visi pārējie dati glabājas servera pusē. Edited July 16, 2013 by codez Quote Link to comment Share on other sites More sharing options...
kristers_Z Posted July 16, 2013 Author Report Share Posted July 16, 2013 Vēl viens scenārijs, kurā vienas sesijas ietvaros cilvēkam lēkā IP adrese ir pieslēgums caur mobilo operatoru (it īpaši tas attioecas uz Tele2, kuram pat IP adrešu diapazonu nav tik viegli nodefinēt) - ja izmanto Tor - tad vispār... Jā, biju pamanījis IP lēkāšanu Tele2 tīklā. Man ir aizdomas ka tas tā varētu būt ari citos tīklos, arī ne tikai mobilajos. Tieši dēļ šīs problēmas es domāju, ka datora papildus autentificēšanu izmantojot IP nemaz nedrīkst veikt, jo lietotāji aiz šādiem tīkliem nemaz nevarēs izmantot sistēmu. Viņus visu laiku automātiski metīs laukā. Tomēr, manuprāt, papildus drošību varētu panākt, ja šādu IP monitoringu ieviestu tikai administratoru kontiem. Piemēram, ja sistēmā reģistrēti 1000 parasti lietotāji un 10 administratori. Tas pat neradītu serverim noslodzi. Adminu konti ir prioritāte, jo no tiem iespējams sastrādāt vairāk malicious darbību. Tomēr jā - tas nepalīdz aizsargāt parastos lietotājus. Quote Link to comment Share on other sites More sharing options...
kristers_Z Posted July 16, 2013 Author Report Share Posted July 16, 2013 Tātad ip pārbaude ir papildus fīča, kuru var pieslēgt, bet nav defaultā. Bet vispār CI kūkiju bibliotēka ir diezgan dīvaina, dēļ tā, ka visi dati tiek kriptēti un glabāti pašos kūkijos. Manuprāt tas ir neefektīvi, jo šie dati tiek sūtīti katrā pieprasījumā, tai skaitā ajax un resursu failiem. Es parasti daru tā, ka kūkijos glabāju tikai vērtību, pēc kuras var noteikt uz kuru sesiju vai lietotāju tā attiecas. Visi pārējie dati glabājas servera pusē. Nu tas padara bildi skaidrāku.. Kā datus ir "normāli" jāsaglabā servera pusē? Tas pats CodeIgniter tam piedāvā izveidot īpašu datubāzes tabulu, bet vai ar šādu uzdevumu nevajadzētu tikt galā servera RAM atmiņai? Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2013 Report Share Posted July 16, 2013 Adminu kontiem vispār var pieprasīt klienta SSL autentifikāciju - tas atrisina daudzas problēmas (rada problēmas, ja admins vēlas adminot no visiem pi rojas esošajiem kompjiem). Quote Link to comment Share on other sites More sharing options...
codez Posted July 16, 2013 Report Share Posted July 16, 2013 Kā datus ir "normāli" jāsaglabā servera pusē? Tas pats CodeIgniter tam piedāvā izveidot īpašu datubāzes tabulu, bet vai ar šādu uzdevumu nevajadzētu tikt galā servera RAM atmiņai?1. Sesijas datus var glabāt db un, ja nav nepieciešama 100% šo datu saglabāšanas drošība, to var darīt memory tabulā. 2. Bez glabāšanas db, tāpat kā citus datus, arī sesijas datus var glabāt kešā (APC, memcahce), tādā veidā nodrošinot tiem ātru piekļuvi pie katra pieprasījuma, kur tie jāapstradā. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2013 Report Share Posted July 16, 2013 CI ir izvēlējies pieeju, ko reiz aprakstīju šeit: http://php.lv/f/topic/10717-autorizacijas-drosiba-sesijas/#entry85172 un pat kaut kādu (šobrīd neieteiktu to lietot) piemēru šai pieejai biju uztaisījis: http://php.lv/f/topic/11116-lietotaju-autentificesana/ Plusi ir tādi, ka nav vajadzība sesiju info sinhronizēt starp serveriem vai paredzēt kādu koplietošanas glabātuvi (db/memcache/etc) Mīnusi - trafiks utt utjp. Quote Link to comment Share on other sites More sharing options...
kristers_Z Posted July 16, 2013 Author Report Share Posted July 16, 2013 1. Sesijas datus var glabāt db un, ja nav nepieciešama 100% šo datu saglabāšanas drošība, to var darīt memory tabulā. Varētu minēt kādu piemēru, uzbrukuma veidu, kur izpaustos drošības atšķirības starp šīm divām metodēm? Quote Link to comment Share on other sites More sharing options...
Kavacky Posted July 16, 2013 Report Share Posted July 16, 2013 Norestartē serveri un visi dabū logoties no jauna. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted July 16, 2013 Report Share Posted July 16, 2013 No drošības (security) viedokļa, manuprāt nav būtiskas atšķirības starp tabulas engine tipu (ja nu vienīgi pats fakts, ka kāda engine varētu piedāvāt papildu slāni - šifrēšanu), taču no uzticamības (reliability) viedokļa Memory tabula avārijas izslēgšanās/restarta gadījumā pazudīs. Atkarībā no tā, vai ir svarīgi, ka sesijas un ar tām saistītie objekti tiek pareizi pabeigti/iznīcināti, tam var nebūt nekādas nozīmes, vai arī tas varētu būt nepieļaujami. 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.