Taas näitä suojaukseen tai vastaavaan liittyviä kysymyksiä..
Minulla on eräässä kansiossa tiedosto, jonka sisältöä ei mieluiten saisi nähdä kukaan, mutta php-skriptin pitää silti voida muokata sitä, samoin minun jos käytän ftp-ohjelmaa. Mutta siis kukaan muu ei, esim. kirjoittamalla osoiteriville tiedoston osoitteen. Mitä teen?
Ja vielä yksi kysymys, joka varmasti on aika selvä, mutta haluaisin varmistaa kumminkin; jos esimerkiksi skripti lataa tiedoston rivit taulukkoon, muutta yhtä ja alkaa tallentaa ja käyttäjä sulkee selaimen kesken kaiken, suoritetaanko tallennus palvelimella loppuun vai jääkö se kesken?
Käytä htaccessia:
http://www.mbnet.fi/mbinternet/ohjeet/suojaus/
deny from all
Siis tuollaisen .htaccess-tiedoston teet sen kansion juureen, minkä haluat suojata. Vain yksi ainoa rivi ja kukaan ei pääse tekemään mitään. Vaihtoehtoisesti voi myös salasanasuojauksen laittaa, jos tahtoo.
Tästä tulikin muuten mieleen, pääseekö toisella palvelimella sijaitseva PHP-skripti käyttämään tiedostoa joka on suojattu htaccessilla?
Ei kai...
lainaus:
Tästä tulikin muuten mieleen, pääseekö toisella palvelimella sijaitseva PHP-skripti käyttämään tiedostoa joka on suojattu htaccessilla?
Ei pääse. Tämä tuntuu olevan jokinlainen ikuisuuskysymys kun se aina tasasin väliajoin tuntuu tulevan pintaan. Oiskohan FAQ:n aika? (Vai olenko vain missannut sen?-)
Eli kerrataan nyt vielä. Toiselta palvelimelta tuleva pyyntö tehdään (PHP:ssä) yleensä http-protokollaa käyttäen. Nämä pyynnöt käsittelee www-palvelin joka palauttaa PHP-parserin palauttaman valmiin html-sivun. Ts. tämä toimii aivan kuten selaimella pyydettäisiin samainen sivu. Jotta lähdekoodia pääsisi katselemaan tarvitaan pääsy tiedostojärjestelmään, esim. ftp-yhteydellä.
lainaus:
Ja vielä yksi kysymys, joka varmasti on aika selvä, mutta haluaisin varmistaa kumminkin; jos esimerkiksi skripti lataa tiedoston rivit taulukkoon, muutta yhtä ja alkaa tallentaa ja käyttäjä sulkee selaimen kesken kaiken, suoritetaanko tallennus palvelimella loppuun vai jääkö se kesken?
Nyt en pysty varmasti sanomaan, mutta voisin veikata että php-parseri kyllä suorittaa sivulla olevan koodin loppuun huolimatta pyynnön katkaisusta. HUOM! Täysin mutua, ei mitenkään faktaan perustuvaa.
lainaus:
Nyt en pysty varmasti sanomaan, mutta voisin veikata että php-parseri kyllä suorittaa sivulla olevan koodin loppuun huolimatta pyynnön katkaisusta. HUOM! Täysin mutua, ei mitenkään faktaan perustuvaa.
Ihan oikein pähkäilty. PHP toimii pelkistettynä seuraavasti (*** = selaimen sulkeminen)
- Selain lähettää HTTP-pyynnön (esim. index.php)
***
- HTTP-palvelin ohjaa pyynnön PHP:lle (.php määrää näin)
- PHP käsittelee sivuston koodin ja palauttaa HTTP-palvelimelle koodin tuottaman outputin
- HTTP-palvelin palauttaa sisällön selaimelle
Eli kaikki mainitut operaatiot suoritetaan vaikka selain sammutettaisiin pyynnön jälkeen (HTTP-palvelimen palauttama sisältö vain häviää bittiavaruuteen).
Entä jos eteen tulee jokin käytännöllisesti katsoen ratkaisematon ongelma (järkevässä ajassa)/ääretön looppi niin millon parseri lopettaa pyörittämisen? Joskus?:)
EDIT: Kuhan mielenkiinnosta, että kuinka PHP on suunniteltu.
php.ini:ssä on ainakin määritelty max_execution_time, taitaa olla defaulttina 30s. Voi myös itse ilmeisesti määritellä jos safe mode ei oo päällä.
lainaus:
Voi myös itse ilmeisesti määritellä jos safe mode ei oo päällä.
Siis voiko ihan scriptissä määritellä?
Jep, funktio tais olla set_time_limit() jos en ihan väärin muista.
Kaikkia phpn asetuksia voi muutella skriptin ajon ajaksi funktiolla ini_set( asetus , arvo )
Aihe on jo aika vanha, joten et voi enää vastata siihen.