Nodeta OyEtusivu

Ohjeet PHP- ja CGI-skriptien käyttöön

Yleistä

  • Nodetan www-palvelin suorittaa kaikki CGI- ja PHP-skriptit oman käyttäjätunnuksesi oikeuksilla.

  • PHP-skriptit suoritetaan ns. CGI-tilassa. Tämän johdosta myös PHP-tiedosto tarvitsee suoritusoikeuden (chmod u+x) toimiakseen www-skriptinä. Lisäksi PHP-tiedoston tulee sijaita hakemistossa, johon ainoastaan käyttäjätunnuksellasi on kirjoitusoikeus (chmod og-w). Jolleivät nämä ehdot täyty, PHP-skriptin käytöstä seuraa Internal Server Error -virheilmoitus.

Tiedosto-oikeudet ja -päätteet

  • PHP- ja CGI-skripteille asetetaan tarvitut oikeudet komentamalla:
    chmod 700 tiedosto.php
  • CGI-tiedoston pääte on kielestä riippuen joko .cgi, .pl, .sh, .php, .php3, .php4 tai .phtml.

  • PHP-tiedoston tiedostopäätteenä kannattaa käyttää .php-päätettä.

  • PHP-tiedoston lähdekoodin saa esitettyä .phps-tiedostopääteellä. Perl-lähdekooditiedoston pääte on .pls. Lähdekooditiedostolla tulee olla laajat lukuoikeudet (chmod o+r).

  • Hakemiston oikeudet saa asetetuksi komentamalla joko
    chmod 755 hakemisto
    tai
    chmod 711 hakemisto
    Näistä ensimmäinen sallii hakemiston sisällön listauksen silloin, kun hakemistossa ei ole indeksitiedostoa (kuten index.html). Vastaavasti jälkimmäinen komento ei salli hakemiston listausta, vaan pelkät tiedostopyynnöt.

  • Kaikki kotihakemiston PHP-skriptit saa oikeuksiltaan toimiviksi myös ajamalla komennon
    phpmode

Internal Server Error

  • Mikäli saat Internal Server Error -virheilmoituksen, kun yrität suorittaa PHP- tai CGI-skriptin, vian paikallistamista helpottaa www-palvelimen virhelokitiedoston lukeminen. Virhelokin löydät palvelimelta paikasta /etc/httpd/logs/www.omadomain.com-error_log. Lokia voit seurata ja lukea esimerkiksi seuraavalla komennolla:
    tail -f /etc/httpd/logs/www.omadomain.com-error_log
  • Mikäli edellisessä kohdassa mainitusta lokista näkyvä virheilmoitus on "Premature end of script headers", ovat syynä todennäköisesti virheelliset tiedosto-oikeudet. Lue ylempänä olevat ohjeet otsikon "Tiedosto-oikeudet" alta.

Huomautus koskien tietoturvaa

Webiin näkyvän hakemiston alla sijaitsevat tiedostot, jotka sisältävät esimerkiksi tietokantasi salasanoja, on syytä suojata ulkopuolisilta. Lisäksi salasanoja sisältävät tiedostot kannattaa nimetä ".php"-päätteisiksi.

Ylimääräiset lukuoikeudet saa poistettua komentamalla:

chmod 600 tiedostonimi

Perl-skriptien ulkoistetun salasanatiedoston (moduulin) pääte on ".pm". Tällä päätteellä varustetut tiedostot eivät ".php":n tavoin pääse vääriin käsiin, jos tiedosto-oikeudet ovat väärin.


PHP:n globaalit muuttujat

PHP:n asetus "register_globals" on tietoturvasyistä "off"-asennossa. Mikäli skriptisi käyttää globaaleja muuttujanimiä, eikä siksi toimi, lue seuraavista osoitteista löytyvät ohjeet asian korjaamiseksi:
http://www.php.net/manual/en/security.registerglobals.php
http://www.php.net/manual/en/language.variables.predefined.php

Valitettavasti osa internetistä saatavista PHP-skripteistä ei noudata turvallista ohjelmointitapaa.

Ongelmatapauksissa ota yhteyttä tekniseen asiakastukeemme hosting@nodeta.fi.


Nodeta Oy • Osoite: Kutomotie 9 C, 00380 Helsinki • Y-tunnus: 1880029-2 • nodeta@nodeta.fiLisää yhteystietoja »