Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP-tiedoston suojaus

Sivun loppuun

Juhko [27.02.2009 14:13:38]

#

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?

ankzilla [27.02.2009 14:24:32]

#

Tulisiko se omaan vai kaikkien käyttöön?

Ratkaisuja on monia.

Metabolix [27.02.2009 14:37:20]

#

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.

Juhko [27.02.2009 14:53:35]

#

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.

ankzilla [27.02.2009 15:42:15]

#

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

<?php
$pss = $_POST['password'];
if($pss != 'salistähän')
die('<form action="salattu_tiedosto.php" method="post">
<input type="password" name="password" size="10" />
<input type="submit" name="submit" value="Kirjaudu" />
</form>');
?>

Juhko [27.02.2009 16:07:35]

#

Juuri tuota tarkoitinkin, mutta hakkereiden on helppo lukea juuri tuota 'salistähän'-tiedostoa.

Antti Laaksonen [27.02.2009 16:52:42]

#

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ö?

https://www.ohjelmointiputka.net/salaisuus.php

TsaTsaTsaa [27.02.2009 17:01:21]

#

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

Juhko [27.02.2009 17:22:56]

#

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ä. :)

peg [27.02.2009 17:54:37]

#

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.

walkout_ [27.02.2009 18:28:46]

#

Jos palvelimella on eAccelelator niin php-koodin voi cryptata. eAccelelator taas hoitaa sen käänämisen takaisin luettavaan muotoon PHP-tulkille.

Juhko [27.02.2009 19:27:27]

#

Selvä, kiitos vastauksista. Mutta mitä sille includetettavalle tiedostolle pitäisi tehdä, jottei sitä näkyisi?

walkout_ [27.02.2009 19:45:23]

#

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.

Juhko [28.02.2009 11:52:55]

#

PHP-pohjainen admin panel omille sivuille on kyseessä. Kokeilen jotakin noista, jos vain jaksan, ja tulen kyselemään jos ei toimi. ;)


Sivun alkuun

Vastaus

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

Tietoa sivustosta