|
|
— |
howtos:personal-web [2013/09/07 14:23] (aktuálne) |
| ====== 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ľ. |
| |