Jump to content
php.lv forumi

Nopietns jautājums!!!


Robis

Recommended Posts

Sveiki!

Man ir nopietns jautājums, kas sasaucās ar lapas drošību!

Tātad:

 

Ja es izmantoju sesijas mainīgos

$_SESSION['id'] piemēram, kuros tiek ierakstītas vērtības, kad tiek nospiests submit un lauciņu vērtības ir pareizās

tad ja es pēc tam čekoju index.php lapu un rādu Ierobežotās pieejas saturu, pārbaudot vai ir uzstādīts tāds $_SESSION['id'] mainīgais ar īsto vērtību,

Vai nav iespējams, ka laikā, kamēr operators darbojas uz viena datora Ierobežotās pieejas saturā, tikām kāda nepiederoša persona no cita datora (vienalga vai tas pats vai cits ip) atver to pašu lapu un kā pa brīnumu tiek klāt Ierobežotās pieejas saturam??? Vai tā var būt??? Ja var, tad kā to novērst???

Link to comment
Share on other sites

Jā, ir iespējams.

Piemēram kaut vai tādā veidā, ka atrodoties vienā tīkla segmentā, ir iespējams redzēt pilnīgi visu segmenta trafiku - tas nozīmē, ka, ja kanāls nav šifrēts, negatīvais tēls var redzēt visu, kas bija jāredz tikai pozitīvajam tēlam.

 

Nākošais (par šo gan neesmu 100% pārliecināts) - serveris nosaka to, kurai sesijai pieder konkrētais http pieprasījums nolasot klienta cookie (vai URL) uzstādīto sesijas id. Tātad, iespējams, ja negatīvais tēls spēj kaut kādā veidā uzzināt pozitīvā tēla cepumiņu (piemēram, pieslēdzoties caur lokālo tīklu pozitīvā tēla datoram un atrodot temporary failos vajadzīgo cepumiņu), tad viņš spēj arī izlikties par pozitīvo tēlu un iegūt slepenos datus. 100% neesmu pārliecināts, vai negatīvais tēls varēs to pielietot no citas IP adreses, tomēr uzstājīgs negatīvais tēls varētu arī pacensties un izmantojot metodes, kuras ir "out of scope of this conversation" panākt, lai viņa pieprasījumi izskatītos serverim kā no pozitīvā tēla IP.

 

Riska samazināšanas metodes:

Izmantot SSL (labāk SSL nevis izdomāt savas metodes, jo noteikti tajās būs daudz caurumu);

Sesiju piesaistīt pie visa, ko vien var izmantot piesaistīšanai un pārtraukt tikko pamanītas kādas izmaiņas.

 

Papildinājums:

Ierakstot Googlē šādus netriviālus ;) vārdus: php session security

var atrast daudzus rakstus par šo problēmu.

http://www.webkreator.com/php/configuratio...n-security.html

 

Viena no lielākajām problēmām, kuru nebiju pamanījis ir fakts, ka uz visādiem free-hosting serveriem visbiežāk sesiju dati tiek glabāti vienā un tajā pašā vietā un netiek nekādā veidā aizsargāti savā starpā starp lietotājiem- tādēļ negatīvais tēls potenciāli varētu nolasīt sesijas id no turienes.

 

Vēl viena metode, kā samazināt risku, ir izveidot drošākas sesijas datu izveides, pārbaudes, iznīcināšanas funkcijas, nekā tas ir by default realizēts PHP.

http://lv.php.net/manual/en/function.sessi...ave-handler.php

 

Vēl viens papildinājums:

http://www.sitepoint.com/blog-post-view.php?id=156260

Konkrēti šis raksts:

http://www.acros.si/papers/session_fixation.pdf

Ja lapa, kurā tiek izmantotas sesijas, uzsāk sesiju jau pie lapas atvēršnas un izmanto šo pašu sesiju (sesijas numuru) arī pēc autentificēšanās procesa - negatīvais tēls var mēģināt piespiest pozitīvo tēlu ieiet ar negatīvajam tēlam jau iepriekš zināmu sesijas id. Sīkāk par to kā to var izdarīt - lasi rakstu.

 

Lai to neļautu, obligāti pie autentificēšanās ir jānobeidz iepriekšējā sesija un jāizveido jauna.

Edited by Aleksejs
Link to comment
Share on other sites

×
×
  • Create New...