Pouze text - only text Econnect Zpravodajství Informační servis pro NNO
- Kalendář akcí | Práce v NNO | Katalog odkazů | Občan TOPlist
- -
Pouze text - only text
logo Econnectu
pro registrované uživatele pro novináře pouze text English
- Technická podpora
[ econnect.ecn.cz > technická podpora > PHP a Safe Mode ]
-

 O Econnectu

 Novinky

 Technická podpora Můj koutek Podpora (Nejčastěji kladené otázky) Změny a poruchy serverů Nahlášení závady

 Přehled služeb

 Ceník

 Objednávka služeb

 Reference

 Kontakty

Co je to Safe Mode?

Safe Mode je nastavení interpreteru PHP skriptů pro jejich bezpečnější spouštění. Pokud je Safe Mode zapnut, platí pro skripty následující omezení:

  • Nejsou povoleny některé potenciálně nebezpečné příkazy (Exec, System, PassThru, Dl a Popen).

  • Některé příkazy je možno používat je za dodržení přísných podmínek. Tyto příkazy pak mohou přistupovat jen k souborů, které vlastní stejný uživatel jako je vlastník spouštěného skriptu nebo k souborům, nacházejícím se v adresáři jež vlastní stejný uživatel jako je vlastník spouštěného skriptu. Jedná se o tyto: Include, Require, Copy, ReadFile, Fopen, File, Link, Unlink, Symlink, Rename, RmDir, ChMod, ChOwn a ChGrp.

  • Otevírat (Fopen) a inkludovat (Include, Require) lze jen soubory, které jsou ve stejném adresáři či podadresářích právě spouštěného skriptu.

  • Při HTTP autentifikaci je k názvu autentifikačního realmu (authentication realm) přidáno tzv. UID vlastníka skriptu. To je z toho důvodu, aby jiný uživatel na stejném serveru nemohl získat heslo tím, že si napíše skript obsahující autentifikaci se shodným názvem (authentication realm).

Velmi nepříjemná jsou tyto omezení při uploadování souboru. Jelikož uploadovaný soubor je serverem kopírován do adresáře a souboru, který nevlastní vlastník skriptu, podle pravidla 2. k němu nemá skript přístup např. funkcí Copy. Proto je třeba použít funkci move_uploaded_file podporovanou od verze PHP 4.0.3 (je na našem serveru nainstalovaná). Po přesunu uploadovaného souboru do adresářů vašeho webu je již možno s ním libovolně zacházet, třeba i smazat jej prostřednictvím FTP.

POZOR: Z bezpečnostních důvodů jsou standardně adresáře nastaveny tak, že webserver Apache do nich nemůže zapisovat. Pokud tedy potřebujete povolit zápis do nějakého adresáře (což při použití funkce move_uploaded_file() předpokládáme), obraťte se prosím na adresu support@ecn.cz, kde vám adresář pro zápis rádi nastavíme.

POZOR 2: Po provedení funkce move_uploaded_file() má soubor nastaveno vlastnictví na nobody - nobody a práva jsou nastavena na 600 (rw-------). Webserver Apache (tj. uživatel nobody) jej tedy může zobrazit, ale vy jej přes FTP nevidíte. Proto je vhodné po funkci move_uploaded_file() použít ještě funkce chmod("/cesta/soubor", octdec('0644')), čímž učiníte soubor viditelný přes FTP i pro vás.

Detailní informace o Safe Mode naleznete na strankách PHP.CZ.

Příklad použití:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Příklad uploadu souboru</title>
</head>
<body>

<form enctype="multipart/form-data" method="post">
  <input type="hidden" name="MAX_FILE_SIZE" value="10000">
  Soubor: <input name="soubor" type="file">
  <input type="submit" value="Poslat soubor">
</form>
<?php
if( $soubor ) {
  move_uploaded_file($_FILES['soubor']['tmp_name'], "dokumenty/".$_FILES['soubor']['name']);
  chmod("dokumenty/".$_FILES['soubor']['name'], octdec('0644'));
}
?>

</body>
</html>

Služby Econnectu

ToolkitUnavuje vás tvorba www stránek v HTML?
Nemá váš webmaster čas na jejich aktualizaci?
S publikačním systémem TOOLKIT to zvládnete SNADNO, RYCHLE A SAMI:
VYZKOUŠEJTE ZDARMA!
vytisknoutvytisknout
Logo Econnectu Easy CONNECTion - snadné spojení mezi lidmi, kteří mění svět
Webhosting, webdesign a publikační systém Toolkit - Econnect
Econnect,o.s.; Českomalínská 23; 160 00 Praha 6; tel: 224 311 780; econnect@ecn.cz