Vpršanje
3 naročniki
3 naročniki
Pozdravljeni,
na internetu sem našel nekaj primerov, kako narediti, da bo funkcija get oziroma post bolj varna. Našel sem nekaj takega pa me zanima kaj mislite o tem ali se splača dodati pri vsakem get oziroma post naslednjo kodo. Ali je mogoče kakša boljša rešitev?
Koda:
$trenutnastran = $GET['stran'];
$trenutnastran = mbconvertencoding($trenutnastran, 'UTF-8', 'UTF-8');
$trenutnastran = htmlentities($trenutnastran, ENT_QUOTES, 'UTF-8');
5 odgovorov
Jap. Uporabiš kak templating engine, ki ti bo avtomatsko preprečeval XSS napade.
Smarty se je včasih uporabljal.
Hvala za odgovora. Imel bi še eno vprašanje ker vidim, da je zelo veliko različnih načinov izdalave... Zanima pa me sledeče ali je pravilno, da se htmlentities uporablja samo pri prikazih na straneh, katere vrednosti pridejo iz MYSQL baze. SQL injection pa se uporablja samo tam kjer podatke dobimo iz $GET oziroma $POST ( predens se zapišejo v bazo ) ali je potrebno sql injection uporabljati ko hočem isto zadevo vpisati v drugo tabelo?
Kadarkoli sprejemaš nek input od userja moraš predvidevat da je lahko to karkoli. Pred mysql injectioni se najlažje zavaruješ s prepared statmenti z uporabo PDO ali mysqli. Če pa se bo input od userja prikazal kje na tvoji strani pa moraš bit pozoren tudi na xss napade, torej moraš odstranit vsaj vse html tage ki niso varni, npr. "<script>". Php funkcija strip_tags ti lahko pri tem pomaga.