Rozdiely
Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.
— |
howtos:personal-web [2013/09/07 14:23] (aktuálne) |
||
---|---|---|---|
Riadok 1: | Riadok 1: | ||
+ | ====== 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ľ. | ||