PHP

Kurz PHP (21.)

Úvodem  |  Kurz PHP |  Odkazy  |  Aplikace  |  Otázky a odpovědi

 

Ochrana skriptů

Při umísťování skriptů na server se určitě budeme zabývat otázkou zabezpečení. Pokud provozujeme důležitý server nebo osobní stránky, může nám únik informací ze skriptů způsobit velké problémy. Ať se jedná o sdílený hosting nebo vyhrazený server, je otázka bezpečnosti (ochrany) vždy na místě. Určitě se najde spousta "profesionálních" hostingů, které umožňují procházet i číst soubory a adresáře po téměř celém serveru (některé profesionální hostingy nevyjímaje). Právě proto je lepší své skripty ochránit. Existují spousty řešení, které fungují na principu zkompilování PHP skriptů do určité podoby (bytecode). Do prostředí PHP se poté umístí zvláštní modul, který zajistí při požadavku převedení a spuštění zkompilovaného kódu. Menším problémem se může stát, že většina těchto nástrojů je placená. My si nyní ukážeme několik nástrojů a ukážeme si, co dokáží.


Zend Encoder™

Ať nechodíme daleko, tak jako první nástroj si ukážeme Zend Encoder. Tvůrcem je společnost Zend - nynější tvůrce PHP. Informace o tomto nástroji se nacházejí na stránkách výrobce. Pro plnou funkčnost je potřeba mít nainstalován na cílovém serveru produkt Zend Optimizer, který je zdarma a nabízí zrychlení běhu skriptů, ale také možnost využívat chráněné skripty.

Nástroj umožňuje:

  • ochranu skriptů při umístění na server
  • zvýšení rychlosti běhu (zpracování) PHP skriptů
  • podporu mnoha platforem (Linux, Windows, Solaris atd.)
  • podporu Zend SafeGuard Suite, pomocí kterého můžeme distribuovat své skripty s licencemi (Trial verze, omezení podle serveru apod.)

Ceny:

Edice Trvalá licence Roční licence
Zend Encoder Plus $2880 $960
Zend Encoder $2400 není k dispozici

Plus verze se liší neomezenou technickou podporou.

Prostředí:

Po instalaci a spuštění se zobrazí úvodní prostředí programu. Testovací verze, která k dispozici ke stažení umožňuje ochranu skritů po dobu tří dnů.

Prostředí
Klikněte pro zvětšení


ionCube PHP Encoder

Jedná se o další z produktů, které nabízejí možnost ochrany PHP skriptů. Svými možnostmi a hlavně svou cenou si určitě najde své příznivce. Na stránkách výrobce je možné najít spousty zajímavých informací, jako například ukázky ochráněných skriptů. Výrobce také nabízí placený online systém, pomocí kterého můžeme ochránit své soubory bez nutnosti kupovaní software (platí se pouze částka za jednotlivé skripty).

Nástroj umožňuje téměř vše, jako konkurence, avšak za příznivější cenu.

Ceny:

Edice Cena Další licence
Entry Level $199 $99
Pro Version $259 $129
Cerberus $348 $174

Pro plnou funkčnost je potřeba si stáhnout modul, který je zdarma a opět se implementuje do PHP prostředí z adresy http://www.ioncube.com/loader_download.php.

Po stažení testovací verze je možné využívat ochrany skriptů po dobu 36 hodin. Testovací verze však obsahuje přidaný text navíc.


SourceGuardian™ Pro 2.0

Posledním produktem, který si dnes ukážeme je produkt SourceGuardian™ Pro, který nalezneme na adrese http://sourceguardian.com/. Výrobce opět nabízí dvě verze tohoto nástroje, které se liší svými možnostmi a samozřejmě svou cenou.

Nástroj umožňuje:

  • ochranu skriptů a zpracování celých projektů
  • podporu omezení IP adres a domén
  • zvýšení rychlosti běhu (zpracování) PHP skriptů
  • podporu mnoha platforem (Linux, Windows, Solaris atd.)
  • a další zajímavé možnosti

Ceny:

Edice Cena
SourceGuardian™ $150
SourceGuardian™ Pro $250

Jako ukázku zdrojového a výsledného skriptu výrobce uvádí:


Zdrojový soubor:

<?
// do the cooking
function cookMeDinner($fish,$chips,$peas){
$the_dish=$fish." is battered, ".$chips." are soggy and ".$peas." are mushy";
	return $the_dish;}
// send the ingredients
$dinner=cookMeDinner("Cod","french fries","garden peas");
// serve up the dish
echo $dinner;
?>

Výsledný soubor:

<?if(!extension_loaded("ixed")){$ixed_lib="";$ixed_sub="/ixed/ixed.".strtolower(substr(php_uname(),0,3)) .".".phpversion(). ".pxp";$ixed_arr=explode(":",ini_get("extension_dir")); while(($ixed_ini=array_pop($ixed_arr)) && !$ixed_lib) {$ixed_rel=str_pad("./",1+3*substr_count(realpath($ixed_ini),"/"),"../"); $ixed_try="/".$ixed_rel.getcwd();while($ixed_try && !$ixed_lib) {$ixed_ptr=$ixed_ini.$ixed_try.$ixed_sub;if(file_exists($ixed_ptr)) $ixed_lib=$ixed_try.$ixed_sub; $ixed_try=substr($ixed_try,0,strlen($ixed_try)-1);};}; if(!$ixed_lib) {echo"<H3>File <U>".$ixed_sub."</U> was not found - execution has been stopped.</H3>";exit();}dl($ixed_lib);}include(ixed_pass("1R0",'Db5XTpZY8CwWkhuVej+op2gJgPoNIjflRnHVSiaT8vJ2El1zg8HgpeRKr uzqRD+3yiZTE++bSvCEu1wZip2-Hp627zfQdDRs882yJEgJB wG3xiaXFyR9SundQJ-QAO98Ag62eVLza8SpelqmOosRuAoKsijeMGmdQamPh+RJzATX-8u2FlHQE py7tMVLI-dDVloi42qSsVoFuGufIP6tHMzBfbOypjtcJYWNL sQ27-3HrsB6g2J-xfRXosN+tD65AhLRBj5iYK-6t4u5Av3zzcYrm2MM0yBwadp1B40GIuHXBvRo C5A2fq4HLnifk32+tEEP4cqV52T4ZJOZg2-kv+2Ipa8oj8q 20WwCZp7hbCoDUZk6Z3bWJO3dk1kPNv0fVuFGM3yynCWi5lmSi4NcGswENlX-d7c7F297PEJ6WHb sNn21GBi2I0jik0MyIuj60XFDS1RWl4Egv28BlLgrkqBLC BTdghgNtbhiXJAcB-TFABVLc2s5CKDY2yLkUqHZ1V9xuI9f2DdrXAeibvuWHUuazPBnX9hh+CLN7 2EFl773Gi-uz02Yg-xsiSZ2XW-nuN2VLw4LNArq7YXIG i2wP4o+p0WM-u-ZlD-gbVqi3c1MLIe7s2GulnGemIJjH25J1Vnjzb78uevPsxvT8pC2i0y0-AEuls alPTIQ7TRf+iDq7moiCHuuTrPXFGNHpLoOm72HrV0cWi 60ADPur1xvCynq7gNK06V2ORych6fevIY2AfU8RctxxgqRhjIT+2ryI29-oSDqTxImBehDqVtSbVH OQDMVzP4GiCwhKMew7jSVo2tAZXLfemPifeJsVXTUFc POI9ZNC6SV7EXFcg5GxqRdYyh32OjoiSkUqf1kec+PojQ2FE-z+X45O5PuUQ6dp2qHKOu+lTxxr4DkI H2a5qIybECixDK+YlKC3MqdztwZYaI72O80PFdhij sI6vA3r+IYRu1ykNiNt9VadVo-lbtN6VHbhy8bXWUthkF4gmi5fiL5OM+iszlLUpLtHWIbw684hOCOjiw9+ S+IEqPvA-+X1QZ8SWeO'));?>

Po instalaci a spuštění se zobrazí úvodní prostředí programu.

Prostředí
Klikněte pro zvětšení

Pro plnou funkčnost je potřeba si stáhnout modul z adresy http://sourceguardian.com/ixeds/index.htm, který je zdarma a opět se implementuje do PHP prostředí.


Pro tento díl to bude vše. V příštím díle budeme dále pokračovat v poznávání jazyka PHP.

 

Petr Rympler