Obsah

Osobné www stránky

Každý používateľ si môže vytvoriť osobné stránky, ktoré budú dostupné na adrese http://www.st.fmph.uniba.sk/~login

V podstate stačí umiestniť obsah stránok do adresára ~/public_html (adresár public_html vo svojom domovskom adresári) a zabezpečiť aby boli prístupné na čítanie pre každého.

Domovské adresáre sa nachádzajú na serveri davinci.fmph.uniba.sk a sú prístupné prostredníctvom protokolov scp/sftp, cez web a v prostredí Windows vo verejných učebniach H3, H6, F1-248, M217 cez zdielaný disk H:.

Pri prístupe cez web alebo zdielaný disk nemá užívateľ priamo pod kontrolou prístupové práva systému linux, je preto nevyhnutné po každej zmene obsahu adresára public_html zabezpečíť aby tento obsah bol prístupný na čítanie pre každého.

Toto nastavenie je možné zmeniť po prihlásení sa cez ssh (napríklad cez program PuTTY) príkazom

chmod -R a+rX ~/public_html

Prípadne môžete využiť predvyrobený script nastav_web Tento script taktiež vyrobí podadresár public_html pokiaľ neexistuje, pridá potrebné práva na čítanie a, v prípade podporovaných skriptov (cgi, pl, php), pridá práva na spúšťanie a odoberie ostatným pravo na zmenu a zápis do týchto súborov. V OSTATNYCH PRÍPADOCH SKRIPT NADBYTOČNÉ PRÁVA NEODOBERÁ. Tento skript je vhodné spúšťať po každej úprave obsahu.

Postup s využitím scriptu nastav_web

Obr. 1: Spúšťanie putty a výber servera

  1. zadáme svoje prihlasovacie meno
  2. zadáme svoje heslo
  3. zadáme príkaz nastav_web
  4. stránku si pozrieme na zobrazenej adrese
  5. odhlásime sa prikazom logout

Obr. 2: Prihlasovanie sa na server a spúšťanie skriptu nastav_web

Používanie PHP, PERL-u a CGI

Je povolené používanie PHP, PERL a CGI skriptov, s určitými obmedzeniami.

Plati pri tom, že všetky skripty sa spúšťajú s právami ich vlastníka, dávajte si preto dobrý pozor aby boli napísané korektne - ohrozujete najmä svoje vlastné dáta.

V prípade, že nekorektný skript umožní útok na server, vyhradzujeme si právo zablokovať stránky, alebo aj účet daného používateľa. Ste zodpovední za svoje konto, neotvárajte ho zbytočne zle napísaným skriptom.

Nezabudnite kontrolovať všetky vstupy, či sú platné a či neobsahujú nebezpečné escape sekvencie, alebo iný zákerný kód. Nedávajte na svoje stránky kód, ktorý nepoznáte a nepreverili ste ho. Je to na Vašu zodpovednosť.

Skontrolujte si, či do súborov nemá právo zapisovať aj skupina. prípadne všetci, v takom prípade server skript z bezpečnostných dôvodov nespustí. Práva môžete upraviť buď ručne, alebo pomocou skriptu nastav_web.

Pre použitie platia nasledovné pravidlá:

ak prvý riadok spustiteľných .cgi súborov obsahuje iba nasledovné:

#!/cesta/k/interpreteru

bude na spustenie súboru použitý daný interpreter, takto je možné použíť iný skriptovací jazyk. Príznak spustireľnosti je pri .cgi súboroch povinný, inak ich server nespustí. Opäť je možné ho nastaviť ručne alebo skriptom nastav_web.

Indexy sa hľadajú v tomto poradí: index.html index.htm index.cgi index.pl index.php index.php4 index.php5 index.xhtml t.j. ak existuje index.html index.php sa už nespustí.

Systém rozlišuje veľké a malé písmená v názvoch súborov.

Zmena PHP interpretera pre .php súbory

Nakoľko sa defaultný php interpreter môže v budúcnosti zmeniť odporúčam odporúčam použiť koncovku .php4 pre projekty, ktoré vyžadujú php4. Keďže v budúcnosti pribudne PHP6 odporúčam používať pre súcasné projekty koncovku .php5

V prípade, že nie je možné požiť koncovku s vyznačnou verziou, možným riešením je explicitne nastaviť php interpreter súbory .php. Interpreter je možné nastaviť osbitne pre každy adresár (vrátane podadresárov). Vo vybranom adresári (napríklad ~/public_html) vytvorte súbor .htaccess s nasledovným obsahom pre nastavenie PHP5:

AddHandler x-suphp-php5 .php

pre nastavenie PHP4

AddHandler x-suphp-php4 .php

Nezabudnite nastaviť správne prístupové práva - čítanie a zápis pre vlastníka, iba čítanie pre skupinu a ostatných. Prípadne použite skript nastav_web

PHP Session

Keďže z bezpečnostných dôvodov beží PHP cez suPHP (t.j. osobné skripty každého používateľa bežia pod daným vlastníkom) informácie o session sú tiež uložené s prístupom povoleným iba pre daného používateľa.

Ak niekto browsuje zo stránky na stránku, postupne sa spúšťa session_start() s rôznymi vlastníkmi a nastane situácia, ked neskôr spustený session_start nemôže čítať/prepísat/zmazať staré informácie o session.

Existuje riešenie - nastaviť inú cestu na ukladanie session informácií pomocou funkcie session_save_path() Túto funkciu je potrebné zavolať pred použitím funkcie session_start s cestou k adresáru, v ktorom budú údaje ukladané. Adresár musí existovať a požívateľ musí mať právo na zápis. Nie je vhodné použiť adresár, do ktorého môžu zapisovať všetci, inak sa problém môže naďalej prejavovať.

Ako vhodné sa javí vytvoriť si v adresári /home/php-sessions vlastný podadresár napríklad príkazom

mkdir /home/php-sessions/loginname

kde loginname je potrebné nahradiť prihlasovacím menom používateľa. Nastaviť mu vhodné práva príkazom

chmod 600 /home/php-sessions/loginname

a používať ho na ukladanie informácií o sessions. Výhoda tohto nastavenia spočíva v tom, že tento adresár bude automaticky čistený od nepotrebných súborov a nemusí sa o to starať používateľ.