====== 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 [[https://www.st.fmph.uniba.sk/horde3|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 == * spustíme program PuTTY (v PC učebni Start menu - Aplications - Networks - PuTTY SSH) * prihlásime sa na server **davinci.fmph.uniba.sk** {{howtos:putty1.png|Obr. 1: Spúšťanie putty a výber servera}} - zadáme svoje prihlasovacie meno - zadáme svoje heslo - zadáme príkaz **nastav_web** - stránku si pozrieme na zobrazenej adrese - odhlásime sa prikazom **logout** {{howtos:putty2.png|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á: * súbory s koncovkou .php budú interpretované defaultným PHP interpreterom (teraz PHPv4, ale môže sa zmeniť bez upozornenia) * súbory s koncovkou .php4 budú interpretované PHPv4 interpreterom * súbory s koncovkou .php5 budú interpretované PHPv5 interpreterom * súbory s koncovkou .pl budú interpretované perl interpreterom (teraz 5.8.8, ale môže sa meniť bez upozornenia) * **spustiteľné** súbory s koncovkou .cgi budú spustené 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 [[http://www.php.net/manual/en/function.session-save-path.php|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ľ.