Forum » Izdelava spletišč » Omejevanje dostopa do datotek neavtenticiranim uporabnikom
Omejevanje dostopa do datotek neavtenticiranim uporabnikom
nejko15 ::
Zdravo!
Zanima me, če se da kako omejiti dostop do datotek uporabnikom, ki niso prijavljeni.
Imam oviro, da nastavitev strežnika ne morem spreminjati.
Hvala za odgovore.
Zanima me, če se da kako omejiti dostop do datotek uporabnikom, ki niso prijavljeni.
Imam oviro, da nastavitev strežnika ne morem spreminjati.
Hvala za odgovore.
ABX ::
Kot prvo povej kaj imaš za web strežnik. Apache ali IIS.
V obeh primerih pa potrebuješ dostop do konfiguracijskih datotek na strežniku.
V obeh primerih pa potrebuješ dostop do konfiguracijskih datotek na strežniku.
Vaša inštalacija je uspešno spodletela!
MrBrdo ::
To ni res, da rabiš dostop do konfiguracije. Je pa res, da na tak način lahko dosti bolje narediš kar se performanc tiče.
Če nimaš dostopa do konfiguracije, še vedno lahko narediš npr. z PHP, da PHP skripta odpre datoteko in jo prebere ter izpiše na izhod, in ustrezno nastavi HTTP headerje. Iz varnostnega stališča je potrebno direktorij s temi datotekami dat ali izven lokacije ki je berljva s spleta (npr. če imaš www direktorij kjer so not datoteke dostopne iz spleta, imaš pa možnost dati datoteke tudi izven tega www direktorija - višje v hierarhiji), ali če te možnosti nimaš, potem daš v en direktorij ki je sicer dostopen z spleta ampak mu ustrezno nastaviš permissione (chmod), tako da "Other" nima nobenih pravic (primer chmod 760 ali celo 700). Tako bi morala imet skripta še vedno pravico do branja medtem ko od zunaj načeloma nebi smelo bit možno branje - seveda preveri! Je namreč odvisno od nastavitev strežnika.
Če nimaš niti možnosti chmoda potem ti ostane le opcija z obfuskacijo filenameov, kar sicer ni 100% varno ampak za silo je tudi vredu. Npr. ko dodaš datoteko, zgeneriraš nek hash na podlagi imena datoteke, in sicer najboljše da uporabiš salted hash in salt shraniš tako da ga nihče drug ne more poznat. Potem datoteko shraniš na disk ampak filename spremeniš v ta hash. Ko preko PHP skripte dobiš ime datoteke, ki jo moraš prebrat, ponovno zgeneriraš ta hash, tako da veš katero datoteko z diska moraš odpret. Tudi v tem primeru moraš imet vsaj možnost da onemogočiš execute permission na direktoriju kjer so datoteke, sicer bo verjetno možno preko spleta pogledat katere vse datoteke so noter. Če to ne gre potem nastaviš direktoriju neko zelo random ime, ki ga bi zelo težko kdo ugotovil, in nikjer ne linkaš na ta direktorij. Seveda to ni 100% varno, ker lahko nekdo ugane, ampak za silo je.
Razlika med temi rešitvami in preko konfiguracije strežnika je:
- precej slabše performanse
- grdi filenejmi (download.php?file=lalala.zip)
- varnost je lahko slabša (odvisno)
Če nimaš dostopa do konfiguracije, še vedno lahko narediš npr. z PHP, da PHP skripta odpre datoteko in jo prebere ter izpiše na izhod, in ustrezno nastavi HTTP headerje. Iz varnostnega stališča je potrebno direktorij s temi datotekami dat ali izven lokacije ki je berljva s spleta (npr. če imaš www direktorij kjer so not datoteke dostopne iz spleta, imaš pa možnost dati datoteke tudi izven tega www direktorija - višje v hierarhiji), ali če te možnosti nimaš, potem daš v en direktorij ki je sicer dostopen z spleta ampak mu ustrezno nastaviš permissione (chmod), tako da "Other" nima nobenih pravic (primer chmod 760 ali celo 700). Tako bi morala imet skripta še vedno pravico do branja medtem ko od zunaj načeloma nebi smelo bit možno branje - seveda preveri! Je namreč odvisno od nastavitev strežnika.
Če nimaš niti možnosti chmoda potem ti ostane le opcija z obfuskacijo filenameov, kar sicer ni 100% varno ampak za silo je tudi vredu. Npr. ko dodaš datoteko, zgeneriraš nek hash na podlagi imena datoteke, in sicer najboljše da uporabiš salted hash in salt shraniš tako da ga nihče drug ne more poznat. Potem datoteko shraniš na disk ampak filename spremeniš v ta hash. Ko preko PHP skripte dobiš ime datoteke, ki jo moraš prebrat, ponovno zgeneriraš ta hash, tako da veš katero datoteko z diska moraš odpret. Tudi v tem primeru moraš imet vsaj možnost da onemogočiš execute permission na direktoriju kjer so datoteke, sicer bo verjetno možno preko spleta pogledat katere vse datoteke so noter. Če to ne gre potem nastaviš direktoriju neko zelo random ime, ki ga bi zelo težko kdo ugotovil, in nikjer ne linkaš na ta direktorij. Seveda to ni 100% varno, ker lahko nekdo ugane, ampak za silo je.
Razlika med temi rešitvami in preko konfiguracije strežnika je:
- precej slabše performanse
- grdi filenejmi (download.php?file=lalala.zip)
- varnost je lahko slabša (odvisno)
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
! | Postavitev Apache serverja s podporo za PHP in MySQL (strani: 1 2 3 4 5 6 7 )Oddelek: Izdelava spletišč | 253798 (28463) | miko22 |
» | Kako zaščititi /uploads direktorij?Oddelek: Izdelava spletišč | 2116 (1879) | MrBrdo |
» | .htaccess varnostOddelek: Izdelava spletišč | 1535 (1201) | N0body |
» | oscommerce v slo (strani: 1 2 )Oddelek: Izdelava spletišč | 8369 (7184) | gregy |
» | Linux in dovoljenjaOddelek: Operacijski sistemi | 1111 (1028) | hruske |