Analizați HTML ca PHP

Există probleme de securitate/performanță dacă setăm serverul web Apache să configureze Apache să gestioneze tot HTML ca PHP? Ma refeream in mod special la:

AddType application/x-httpd-php .php .php3 .php4 .html

Eram într-o situație în care trebuia să adaug niște logică PHP în unele fișiere HTML; în mod ideal, nu trebuia să schimb numele fișierului, de ex. page.html la page.php (pentru a menține rangul paginii etc. pentru page.html).

Aceasta este legată de următoarea întrebare: https://serverfault.com/questions/186821/httpd-addtype-directive

Editări: din răspunsurile/comentariile existente de mai jos, se pare că comunitatea sugerează fie să folosiți redirecționări, fie să vizați numai anumite fișiere HTML. Constrângerea este că reproiectez un site existent (400+ pagini HTML; fiecare dintre ele folosește un fel de șablon Dreamweaver care atrage antetul și subsolul din fișiere diferite). Speram să mă feresc complet de mutarea Dreamweaver în ceva neproprietar. Deci, am două opțiuni:

  1. Utilizați Server Side Includes (SSI) pentru a introduce antetul și subsolul. Acest lucru va duce la decorarea tuturor fișierelor mele HTML cu SSI.
  2. Presărați niște fragment PHP pentru a include antetul și subsolul. Pentru această alegere, trebuie să mă asigur că numele fișierului rămâne neschimbat.

person moey    schedule 24.08.2011    source sursă
comment
Te-ai gândit să folosești în schimb rescrierea adreselor URL?   -  person Oliver Charlesworth    schedule 25.08.2011
comment
nu uitați că va fi lizibil, dacă reconfigurați accidental ie. uita de asta   -  person Igoris Azanovas    schedule 25.08.2011
comment
Oli are o idee bună aici. O rescrie ar fi o soluție foarte sigură (ca să nu mai vorbim de simplă).   -  person Damien    schedule 25.08.2011
comment
Ar fi o suprasarcină suplimentară de analizare a fișierelor pur-html, dar altfel nu ar trebui să existe nicio diferență... CU CĂRÂND unele dintre acele pagini HTML conțin cod PHP ca exemple, într-o situație de tip nu-executare. Acum că fișierele .html sunt analizate/executate ca scripturi php, acel exemplu de cod ar fi executat la fel.   -  person Marc B    schedule 25.08.2011


Răspunsuri (2)


Cu cât serverul stabilește că trebuie să treacă prin interpretul PHP mai multe fișiere, cu atât este mai mare cheltuielile generale, dar cred că acest lucru este de la sine înțeles. Dacă site-ul dvs. nu are nicio pagină cu HTML simplu, atunci plătiți deja toate penalitățile de performanță pe care le-ați putea plăti - adăugarea HTML la listă nu este diferită în acest caz decât simpla redenumire a tuturor fișierele să aibă extensia .php.

Adevărata penalizare de performanță ar veni dacă ai ai pagini HTML simple - serverul va trece inutil aceste pagini către PHP pentru interpretare atunci când nu este necesară. Dar chiar și atunci, nu este dramatic - interpretul PHP nu va fi necesar pentru acele pagini HTML, așa că nu va face nimic în afară de a determina că nu trebuie să facă nimic. Acest lucru are un cost, dar nu este semnificativ.

Acum, dacă vorbim de volum mare aici, fiecare pic de performanță contează și aceasta nu ar fi o soluție practicabilă. Cu toate acestea, pentru site-urile cu volum mic până la mediu, penalizarea performanței ar fi nulă.

Dacă aceasta este o modificare unică și există un număr limitat de fișiere care sunt afectate, atunci poate fi mai conservator să folosiți o directivă FilesMatch.

<FilesMatch "^(file_one|file_two|file_three)\.html$">
  AddType application/x-httpd-php .html
</FilesMatch>
person Chris Baker    schedule 24.08.2011
comment
Văd că ai adăugat și FileMatch ;) De asemenea, +1 pentru că știm cu toții cine ți-a dat cu adevărat -1, nu-i așa? Întoarceți favoarea dacă doriți. - person Amir Raminfar; 25.08.2011
comment
Am întors favoarea, dar nu sunt sigur cine este respingând aceste răspunsuri concrete. Nu cred că niciunul dintre răspunsurile de aici este evident fals, sau chiar prost sfătuit - toate ar trebui votate sau nevotate. Meh. :) - person Chris Baker; 25.08.2011

Nu sunt de acord cu Tuga. Nu cred că ar trebui să faceți această modificare pentru toate fișierele dvs. Ori de câte ori ai de-a face cu securitatea, ar trebui să încerci să controlezi mediul. A face acest lucru doar pentru un fișier este probabil cel mai sigur. Ai putea face ceva de genul

<FilesMatch "^file_name\.html$">
AddType application/x-httpd-php .html
</FilesMatch>

Aceasta se va potrivi doar cu file_name.html și o va procesa ca .php acolo unde este mult mai sigur să faceți acest lucru decât să tratați TOATE .html fișierele ca php.

person Amir Raminfar    schedule 24.08.2011