PHP (skriptovací jazyk): Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
Bubamara (diskusia | príspevky)
d Verzia používateľa Tomas CC (diskusia) bola vrátená, bola obnovená verzia od Sudo77(new)
Image01 (diskusia | príspevky)
d preklepy
Riadok 41:
 
== Bezpečnosť ==
Okolo 30 % všetkých zraniteľností zaznamenaných v [[:en:National Vulnerability Database]] sú spojené s PHP.<ref>{{ cite web|url=http://www.coelho.net/php_cve.html|title=PHP-related vulnerabilities on the National Vulnerability Database|accessdate=2012-07-05}}</ref> Tieto zraniteľnosti sú spôsobené nedodržaním pravidiel praktického programovania. Technické chyby samotného jazyka alebo jeho základných knižníc nie sú také časté (okolo 1% zo všetkých chýb v roku 2008).<ref>{{cite web|url=http://seancoates.com/blogs/security-and-driving-and-hiring |title=Security and... Driving? (and Hiring) |publisher=Sean Coates |date= |accessdate=2009-07-29}}</ref><ref>[http://www.computerworlduk.com/toolbox/open-source/blogs/index.cfm?entryid=533&blogid=14 Computerworlduk.com], Interview: Ivo Jansch, February 26, 2008</ref> Keďže programátori robia chyby, niektoré jazyky obsahujú kontrolu chýb na automatické zisťovanie nedostatočnej validácie vstupu, ktorá vedie k mnohým problémom. Takáto funkcia je vyvíjaná aj pre PHP,<ref>{{cite web|title=PHP Taint Mode RFC|url=http://wiki.php.net/rfc/taint}}</ref> ale jej zahrnutie a vydanie bolo v minulosti niekoľkokrát zamietnuté.<ref>{{cite web|title=Developer Meeting Notes, Nov. 2005|url=http://www.php.net/~derick/meeting-notes.html#sand-boxing-or-taint-mode}}</ref><ref>{{cite web|title=Taint mode decision, November 2007|url=http://devzone.zend.com/article/2798-Zend-Weekly-Summaries-Issue-368#Heading1}}</ref>
Existujú však pokročilé ochranné záplaty ako napríklad [[Suhosin]] a [[Hardening-Patch]], ktoré sú špeciálne navrhnuté pre prostredia webhostingu.<ref>{{cite web|title=Hardened-PHP Project|url=http://www.hardened-php.net|date=2008-08-15}}</ref>
[[PHPIDS]] pridáva bezpečnosť ľubovoľnej PHP aplikácii pre ochranu proti intruze. [[PHPIDS]] detekuje útoky založené na cross-site scripting ([[XSS]]), [[SQL injection]], header injection, directory traversal, spúšťanie vzdialených súborov, remote file inclusion, a denial-of-service ([[DoS]]).
Riadok 47:
== Optimalizácia rýchlosti ==
Zdrojový kód PHP je skompilovaný za behu na vnútorný formát, ktorý môže byť vykonaný prostredníctvom PHP engine.<ref>{{cite web|accessdate=2009-11-04|url=http://www.linux-tutorial.info/modules.php?name=Howto&pagename=Unix-and-Internet-Fundamentals-HOWTO/languages.html|title=How do computer languages work?}}</ref><ref>{{harv|Gilmore|2006|p=43}}</ref> Aby sa urýchlil čas vykonávania a nemusel sa kompilovať zdrojový kód vždy keď sa pristupuje k web stránke, môžu byť PHP skripty taktiež nasadené v spustiteľnom formáte použitím PHP kompilera.
Optimalizátory kódu sú zamerané na vylepšenie výkonu skompilovaného kódu redukovaním jeho veľkosti, odstránením nadbytočných inštrukcií a vykonávaním iných zmien, ktoré môžu znížiť vykonávací čas. Pri PHP sú často príležitosti na optimalizáciu kódu.<ref>{{cite web|accessdate=2008-03-28|title=PHP Accelerator 1.2 (page 3, Code Optimisation)|url=http://www.php-accelerator.co.uk/PHPA_Article.pdf|format=PDF |publisher=Nick Lindridge}}</ref> Príkladom optimalizátora kódu je PHP rozšírenie [[eAccelerator]].
Ďalším prístupom k redukovaniu kompilačného zaťaženia pre PHP servery je použitie opcode cache. Opcode cache funguje na základe odchytávania skompilovanej formy PHP skriptu v zdieľanej pamäti aby predchádzala nadmernému parsovaniu a kompilovaniu kódu pri každom spustení skriptu.
Aby sa zaručila najväčšia efektivita opcode caching a optimalizácia kódu môžu byť skombinované, keďže modifikácie sú vzájomne nezávislé (sú vykonávané v rozdielnych častiach kompilácie).