Miten onnistuu estää tiedostojen latauksen / näytön esto tollaisessa sessiolla varustetussa salasanasuojauksessa.
Sivuillehan ei pääse jos sessio ei ole tosi mutta esim kuvia ja tiedostoja voi katsoa laittamalla url:iin esim:
http://www.salainen.fi/kuva.gif
tai:
http://www.salainen.fi/allu.exe
Miten olette kyseisen jutskan hoitaneet?
Laittamalla $_GET-osoitteeksi esim. rivinumero. Valitulta tiedoston riviltä etsitään taulukkoon tiedostojen nimet ja näytetään tiedostot ilman, että näkyy pelkkä rivinumero osoiterivillä. Tällaista systeemiä olen käyttänyt mm. omassa foorumissa, jossa viestitiedoston nimen sijasta näytetään rivi, jolla kyseiseen filuun viitataan aiheet.txt tiedostossa.
Jos haluan kavereille näyttää ottamiani kuvia ja en halua muiden niitä näkevän niin htaccesilla saa kyllä kätevästi tollaisen salauksen joka kattaa alihakemistot. Mutta session kanssa tosiaan en tiedä miten tällainen onnistuu. Se on ihan sama onko logini vai ei mutta jos joku outo arvaa että minulla on LOLlot.jpg hakemistossa niin url:n kautta hän näkeen sen. Kannattaako tällaista edes miettiä? Jos listaus ei ole päällä niin mitempä kukaan arvaisi etsiä esim. 62_LOLlot_cwer.jpg tiedostoa?
Jos käytössä on gdlib niin kokeilepa tehdä joku php-sivu, joka lataa kuvat htaccessilla suojatusta kansiosta.
Itse toteuttaisin moisen siten että tiedostot joita pitää rajoittaa laitetaan omaan hakemistoonsa joka suojataan .htaccess systeemillä (olettaen että käytetään apache web serveriä). php scriptihän pääsee tuonne hakemistoon suojauksesta huolimatta ja saa luettua tiedostot tarpeen mukaan.
.htaccess:
RewriteEngine on
RewriteRule .gif /check_login.php
check_login.php:
Tarkistat onko käyttäjä kirjautunut, ja tulostat kuvan/virheilmoituksen. Haetun tiedoston polku löytyy muuttujasta $_SERVER['REQUEST_URI'].
Voiko tuolle htaccesin tarkistukselle lähettää PHP:lla salasanat? Kokeilin tuota ederthin tekniikkaa ja en saanut hommaa toimimaan. Server erroria pukkasi. Miten siis käsittelen tuota Server__request_url:a? Sitten pohdin jo htpasswd tiedostoon kirjoittamista loginin jälkeen mutta tuo sessiologgaus menettää jälleen siinä tarkoituksensa. Pikku vinkkejä lisää..
Mahtaako servulla olla ReWrite moduuli käytössä?
homma ratkesi. Rakentelin tossa vaan samalla sellaista juttua jossa on tietokannassa kertakäyttösalasanoja joilla voi ladata tietyn kuvan kerran koneelleen:
<?
header("Content-type: text/jpg");
header("Content-Disposition: attachment; filename=LOL.jpg");
readfile('kuvat/LOL.jpg');
?>
kansio kuvat on suojattu htaccesilla. Tietysti tuossa vielä pitää olla session tarkistukset. Kiitos vinkeistä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.