 |
|
 |
 | Curatarea parametrilor PHP |  |
Trimis: 19/07/2007 16:56 |
|
|
| Ad_Infinitum |
| Administrator |

 |
 |
| Data inscrierii: 23/Iun/2007 |
| Mesaje: 212 |
|
|
|
 |
 |
 |
|
Asa cum s-a spus in alt produs permanent este o problema de securitate cu 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 îngăduie 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.
| Citat: |
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. |
|
|
|
|
|
|
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
|
|