valizarea parametrilor pasati paginilor care pot contine comenzi SQL
sau cod JavaScript nedorit. Exista unele functii inglobate in PHP care
va ajuta sa curatati parametrii, iar pentru alte lucruri se pot crea
functii noi.
O astfel de functie este strip_tags() care elimina tagurile HTML din stringul specificat, sau permite doar unele taguri. De obicei este bine de eliminat < script >, <
iframe > sau altele care pot altera pagina HTML. Sau altadata nu
sint persmise imagini sau taguri de formatare a textului.
O alta functie utila este htmlspecialchars() care codifica citeva caractere speciale:
'&' (ampersand) devine '&'
'"' (ghilimele) devine '"'
''' (apostrof) devine '''
'<' (mai mic) devine '<'
'>' (mai mare) devine '>'
Mai generala este htmlentities()
care este asemanatoare cu functia anterioara cu precizarea ca
functioneaza si pentru alte caractere care au codificari HTML, pe linga
cele de la htmlspecialchars():
'(c)' devine ©
'(r)' devine ®
etc.
Mai jos o sa dau un exemplu de functie care elimina dintr-un string
anumite caractere. Poate fi folosita pentru a eliminina ';', spatii,
apostroafe, ghilimele sau altele. In acest mod SQL injection sau Cross
Site Scripting (XSS, injectare de cod JavaScript) nu mai este posibil.
Cod: |
function strip_chars($string,$chars) { preg_match_all("(.)",$chars,$tmp_clean); return(str_replace($tmp_clean[0],array_fill(0,count($tmp_clean),""),$string)); } |
Apoi o sa poata fi folosita:
echo strip_chars("Un text 'oarecare';"," ';");
Ceea ce va afisa: 'Untextoarecare'
Ca regula generala intotdeauna sa fiti atenti la ce se paseaza la o
pagina sau este afisat, mai ales cind este vorba de cod HTML sau
parametri care pot fi schimbati in mod voit in pagini.