Olen jo pidempään pohtinut, miten saan "suojattua" tiedostot niin, että pystyn luomaan jonkin asteista käyttäjiensuodatusta? Esimerkiksi pdf-tiedostoja pitäisi voida esittää vain tietylle käyttäjäryhmälle.
Vaihtoehtoja on pilvin pimein ja käytettävissä olevat niistä riippuvat jossain määrin käyttämästäsi palvelimestakin.
Apache-palvelimilla .htaccess on hyvin suosittu ja yksinkertainen tapa hoitaa asia. Sitten johonkin palvelimella ajettavaan ohjelmaan (esim. PHP-skripti) perustuvat systeemit, jotka voivat säilöä käyttäjien tiedot esimerkiksi tietokannassa, ovat myös suosittuja.
Niin, mutta miten tallennat pdf ilman, että ei ole kaikkien saatavilla? sitä kun on vaikea php taakse laittaa tiedostona.. Tiedostoilla olen yrittänyt pelleillä, mutta eivät nuo apachessa ainakaan ottaneet toimiakseen.
En kyllä näe mitään ongelmaa kummassakaan mainitsemassasi vaihtoehdossa.
Ihan tiedostona voit laittaa johonkin www-hakemistoon ja tunkea sinne .htaccess -tiedoston jossa rajoitat ko. hakemiston tai ko. tiedoston näkyvyyden vain kirjautuneille käyttäjille.
Tai sitten voit laittaa tiedoston WWW-rootin ulkopuolelle ja esim. PHP:llä sitten annat sen tiedoston kirjautuneille käyttäjille. En ymmärrä mitä tarkoitat, että "on vaikea laittaa PHP:n taakse tiedostona".
Usein ei ole mahdollista laittaa tiedostoa www-rootin ulkopuolelle ja htaccess ei sovi muuten tarpeisiin (sisäänkirjautuminen php:n kautta jne.).
Silloin ratkaisu voisi olla tallentaa tiedosto salaisella nimellä ja ohjata tiedosto käyttäjälle PHP:llä. Esimerkiksi tiedoston nimi palvelimella voisi olla 48e0d577cdcc152acfcfa275e11c0a1b.pdf ja PHP voisi antaa sen käyttäjälle nimellä raportti.pdf.
Enpä ole vielä törmännyt web-hotelliin, jossa ei voisi laittaa tiedostoa www-rootin ulkopuolelle. Mutta jos tuollainen ihme tosiaan on olemassa, niin voisihan sinne www-rootin sisään tehdä hakemiston tiedostoille ja estää sieltä suoraan lataamisen esim. juuri htaccessilla.
Monesti tullut noita vastaan, esimerkkinä vaikkapa lukion järjestämä verkkokurssi, jossa jokaisella on hieman tilaa tallentaa töitään. Pitänee kokeilla htaccess seuraavalla kerralla kun ongelma tulee vastaan. Kiitos vastauksista!
Yksi ratkaisu (johon Grez taisi jo viitata) on, että estät htaccessilla lataamisen ja laitat siihen salasanaksi vaikka ns. admin-salasanan. Tästä huolimatta voit PHP-skriptillä lukea tiedostoja, jolloin voit toteuttaa PHP:llä tuon tyylikkäämmän tarkistuksen tavallisille käyttäjille. PHP:n kannaltahan tilanne on sama, olivat tiedostot sitten htaccess-suojatussa hakemistossa tai www-rootin ulkopuolella.
Aihe on jo aika vanha, joten et voi enää vastata siihen.