Sunday, May 21, 2006

Filtrarea informatiei

Anumite caractere prezente in informatia de intrare pot avea semnificatie ca formatare HTML si trebuie inlocuite cu echivalentul lor pentru a nu fi interpretate in browserul clientului. Vulnerabilitati cum ar fi XSS sau injectarea SQL, pot si trebuie oprite prin filtrarea informatiei. PHP pune la dispozitie doua functii in acest scop. Spre exemplu pentru encodarea informatiei ce urmeaza sa fie afisata pe ecran (forumuri, bloguri, mesaje) poate fi utilizata functia htmlentities(); aceasta converteste caracterele HTML in echivalentul, astfel incat in loc ca acestea sa fie interpretate de browser, ele sa apara in pagina HTML, impiedicand executia de cod javascript in browserul clientului.







Functia htmlentities() este identica cu htmlspecialchars() dar transforma toate caracterele HTML, pe cand htmlspecialchars() permite precizarea actiunii asupra ghilimelelor simple/duble.
Actiunea f unctiei htmlentities():





Functia strip_tags nu inlocuieste codul HTML ci 'incearca' sa stearga tagurile. Pentru ca nu face nici un fel de validare a codului HTML e posibil sa apara efecte nedorite in cazul unor taguri incomplete, prin urmare nu este recomandata.
Ghilimelele pun probleme atunci can sirul preluat urmeaza sa fie parte a unei interogari SQL. In acest caz e necesara anularea(escape) prin '\', lucru ce poate fi facut prin functii ale SGBD-ului sau din PHP.

0 Comments:

Post a Comment

<< Home