Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedostojen turvallinen säilytys palvelimella

Sivun loppuun

Hakoulinen [18.10.2009 17:42:38]

#

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.

Grez [18.10.2009 17:47:58]

#

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.

Hakoulinen [18.10.2009 18:43:10]

#

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.

Grez [18.10.2009 18:45:41]

#

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".

<?php
  if (käyttäjäonkirjautunut()) {
      header('Content-type: application/pdf');
      readfile('/user/blaa/rajatut/original.pdf');
  } else {
      echo "Älä yritä";
  }
?>

Hakoulinen [18.10.2009 18:49:29]

#

Usein ei ole mahdollista laittaa tiedostoa www-rootin ulkopuolelle ja htaccess ei sovi muuten tarpeisiin (sisäänkirjautuminen php:n kautta jne.).

Antti Laaksonen [18.10.2009 18:58:01]

#

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.

Grez [18.10.2009 19:05:39]

#

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.

Hakoulinen [18.10.2009 20:54:19]

#

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!

Metabolix [18.10.2009 21:18:44]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta