PHP este un limbaj de programare si html este un limbaj grafic. Diferenta este ca PHP opereaza in server-side, in timp de html opereaza user-side. De asemenea php contine functii de prelucrare si modificare ale continutului, in timp ce html se bazeaza pe afisarea acestuia.
Comunicarea intre utilizator si scriptul php se realizeaza prin intermediarul html, mai exact prin forms. Exista doua tipuri de forms in html, si anume GET si POST. Transmiterea prin GET este greoaie si se realizeaza prin intermediul url-ului, datele fiind restrictionate la un sir de 255 caractere, in timp ce prin post datele au o lungime practic nelimitata, ele fiind transmise prin curenta conexiune html. La accesarea butonului submit al formei html suntem adusi pe pagina specificata prin identificatorul target. Datele transmise prin POST sau GET sunt preluate de catre php prin urmatoare sintaxa:
Code: Select all
<?php
$variabila1=$_POST['identificator'];
$variabila2=$_GET['identificator2'];
?>
Probleme apar cand prin intermediul acestor variabile este stocat continut in baza de date pentru afisare ulterioara pe site, mentinerea unei evidente etc. Caracterele speciale nu se impaca bine cu MySQL si, din aceasta cauza, pot aparea erori de procesare, de sintaxa, probleme in afisarea codului html. Pentru evitarea acestor probleme si, in concluzie, pentru evitarea problemelor de tip Injectie SQL, inectie XSS este necesara filtrarea continutului preluat de la utilizator. Php pune la dispozitie un numar destul de mare de functii care au rolul de protejare si eliminare a caracterelor speciale.
Dintre acestea amintim:
Code: Select all
htmlspecialchars(); //functie de baza, elimina toate caractere nedorite.
FILTER_SANITIZE_EMAIL(); //functie filtrare camp, folosita pentru emailuri.
FILTER_SANITIZE_URL(); //functie filtrare url.
Folosirea functiilor:
Functiile citate mai sus se aplica unei variabile sau pot merge direct cu functiile $_GET si $_POST, cum urmeaza:
Code: Select all
<?php
$var1=htmlspecialchars($_POST['identificator']);
?>