Eli miten PHP-tiedosto pitäisi chmodata / tehdä jotakin muuta, jotta sitä pystyisi käyttämään normaalisti, mutta itse tiedoston lukeminen toisesta tai samasta koodista / lähdekoodin selville saaminen ei olisi mahdollista?
Tulisiko se omaan vai kaikkien käyttöön?
Ratkaisuja on monia.
Ei se ole järkevästi mahdollista. Jos tiedostoa ei voi lukea, sitä ei myöskään voi suorittaa, koska suorittaminen tietenkin edellyttää koodin lukemista.
Oikeastaan ainoa mahdollisuus olisi tehdä ohjelma, joka lukee ensin tiedoston, vaihtaa sitten omia käyttöoikeuksiaan niin, ettei sillä ole enää oikeutta lukea tiedostoa, ja lopuksi vasta käynnistää PHP-tulkin omilla olemattomilla oikeuksillaan ja suorittaa etukäteen luetun tiedoston. Tällainen on kuitenkin jopa UNIXissa melko työlästä ja vaatii kaikenlaista ylimääräistä normaalin PHP-tulkin sijaan, enkä tiedä, onko vastaava Windowsissa lainkaan mahdollista.
ankzilla kirjoitti:
Tulisiko se omaan vai kaikkien käyttöön?
Omaan. Olisin halunnut salata tiedoston koska salasanani on kirjoitettu siihen. Se ei kuitenkaan ole pakollista, koska salasana on md5-koodattu. Kiitos joka tapauksessa vastauksista.
Juhko kirjoitti:
ankzilla kirjoitti:
Tulisiko se omaan vai kaikkien käyttöön?
Omaan. Olisin halunnut salata tiedoston koska salasanani on kirjoitettu siihen. Se ei kuitenkaan ole pakollista, koska salasana on md5-koodattu. Kiitos joka tapauksessa vastauksista.
No toi salasanajuttuha o iha helppo. :D
Juuri tuota tarkoitinkin, mutta hakkereiden on helppo lukea juuri tuota 'salistähän'-tiedostoa.
Käytännössä salasanan kirjoitus PHP-koodin sisään ei ole kovin vaarallista, koska PHP-koodin ei pitäisi missään tilanteessa tulla sivun käyttäjän näkyville.
Esim. jos kirjoitat tiedostoon salaisuus.php
<?php $data = "salainen teksti"; echo "Vain tämä teksti näkyy käyttäjälle."; ?>
ja korvaat kohdan "salainen teksti" jollain muulla, niin käyttäjä tuskin saa sitä selville.
Vai mikä on tässä tiedostossa muuttujan $data sisältö?
Voihan toki käydä niin, että php-tulkki jostain ihmeen syystä on poissa päältä kun joku käy sivuilla, jolloin selain näyttää php-koodin. Kannattaa siis arkaluontoiset jutut laittaa public_html-kansion ulkopuolelle ja ottaa ne includella mukaan.
<?php // tämä on esim. kansiossa /home/tsatsatsaa/secret/ // kansion oikeudet voi laittaa varmuuden vuoksi vaikka niin, // että ryhmänä on www-data ja vain sillä on lukuoikeus $passu = "sAlasAN!aaaa"; ?> * index.php <? // tämä on taas normaalisti public_html:ssä include("/home/tsatsatsaa/secret/passu.php"); echo $passu; // tulostaa "sAlasAN!aaaa" ?>
Antti, mitkä tuon sinun tiedostosi oikeudet ovat? Minulla ne ovat 640. Haluaisin siis, etteivät edes omalla palvelimellani olevat tiedostot / se itse pystyisi lukemaan sitä. Itse pääsin helposti lukemaan tiedoston sisällön normaaleilla tiedostonlukukomennoilla (tiedosto luki itseään).
No joo, eiköhän tämä ole nyt selvä. :)
Jos saa php:n kaadettua niin tulostuu koko tiedosto. Tämän takia eri tie-
dostoon tuo teksti ja tiedostoa ei laiteta web hakemistoon, sitten includettaa sen paikalleen.
Jos palvelimella on eAccelelator niin php-koodin voi cryptata. eAccelelator taas hoitaa sen käänämisen takaisin luettavaan muotoon PHP-tulkille.
Selvä, kiitos vastauksista. Mutta mitä sille includetettavalle tiedostolle pitäisi tehdä, jottei sitä näkyisi?
Siis miksi se ei saa näkyä?
Siis jos tämä on FTP-homma tai sit siä on PHP-pohjainen filemanageri..
Niin yksi keino on <?php ini_set('include_path = ".:/joku/polku/mihin/ei_ftptunnuksilla_X_pääse/"
sit se tiedosto sinne.
tosin sen saa kyllä sitten osaava koodari lukea ja tulostaa näytölle jos tietä polun eli se tiedosto missä on include käsky pitäsi cryptata.
PHP-pohjainen admin panel omille sivuille on kyseessä. Kokeilen jotakin noista, jos vain jaksan, ja tulen kyselemään jos ei toimi. ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.