Acasa »Saitebuilder» Protejarea scripturilor PHP numite de AJAX
Pentru a scrie acest mesaj, am fost invitat de o întrebare de tip unic, adresată unei varietăți de forumuri pentru webmasteri - inclusiv pe Null, pe care o moderam și o consider pe cea mai bună dintre ele. Dacă fișierul pe care tocmai îl includem poate fi "ascuns" prin adăugarea unor constante ('_ BLABLABLA') sau a morilor (), atunci situația cu fișierele numite XMLHttpRequest este puțin diferită.
Deci, la început un exemplu "simplu":
Primul (și cel mai simplu) este de a verifica modul în care se numește fișierul:
Cu toate acestea, această metodă nu poate fi numită universală - de exemplu, vizitatorul a trecut printr-un proxy corporativ, redând titluri "necunoscute". În plus, titlurile pot fi false.
Următorul pas este să adăugați un control referitor, adică unde este apelat fișierul. Să schimbăm apelul de fișier:
și în myfile.php faceți ceva de genul:
Cu toate acestea, atât calea, cât și domeniul pot fi false, adică precum și în primul caz, considerați această protecție universală cel puțin naivă. Ce puteți verifica încă?
Puteți adăuga o sesiune la fișierul de apel și puteți verifica corespondența în apelant.
Pentru a face acest lucru, adăugați următoarele linii la fișierul de apel:
Și în myfile.php adăugăm următoarea verificare:
Exemplele nu specifică în mod specific acțiunile în cazul accesului "incorect" la fișier - cum trebuie să procedați, trebuie să decideți în fiecare caz - să întrerupeți scriptul, să emiteți un mesaj de eroare, să scrieți în jurnal etc.
Dacă utilizați toate cele trei verificări în același timp, veți avea un grad de protecție suficient de ridicat pentru a apela fișierul "din exterior". Cu toate acestea, nu vă bazați exclusiv pe aceste verificări. Dacă fișierul apelat, de exemplu, scrie date în baza de date, trebuie de asemenea verificate aceste date. Dacă fișierul numit încarcă ceva (cum ar fi o imagine sau arhivă) pe server - este necesar să bifați această "ceva". Ie nu uitați de regula cea mai importantă - tot ce vine din exterior este potențial periculos.
În cazul în care acest post a părut util sau interesant pentru tine, faceți clic pe unul dintre butoanele de mai jos - de la VKontakte, facebook, tweeter, sau Google +, pentru a afla mai multe despre ea prietenii tăi. Mulțumesc!