Univerzális string szűrő
Egy olyan php kódot szeretnék írni, ami kiszűr minden nem kívánatos karaktert a GET, POST, COOKIE, REQUEST elemekből, de úgy hogy ne kelljen minden egyes mysql_query-be beletennem a megfelelő szűrőket. Szerintem a legjobb megoldás, ha lenne egy univerzális szűrőm, amit betennék a front controller legelejére (index.php), így minden kiszűrne még mielőtt bármi használhatná az elküldött stringeket.
A http://us2.php.net/manual/en/function.mysql-real-escape-string.php oldalon találtam egy ígéretes kódot, az egyik:Szerintetek szükséges beletenni ezeket is: strip_tags(), htmlspecialchars(), htmlentities()?
Eelegendő védelmet nyújt ez a programkód?
■ A http://us2.php.net/manual/en/function.mysql-real-escape-string.php oldalon találtam egy ígéretes kódot, az egyik:
$_GET = array_map('trim', $_GET);
$_POST = array_map('trim', $_POST);
$_COOKIE = array_map('trim', $_COOKIE);
$_REQUEST = array_map('trim', $_REQUEST);
if(get_magic_quotes_gpc()):
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
$_REQUEST = array_map('stripslashes', $_REQUEST);
endif;
$_GET = array_map('mysql_real_escape_string', $_GET);
$_POST = array_map('mysql_real_escape_string', $_POST);
$_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
$_REQUEST = array_map('mysql_real_escape_string', $_REQUEST);
Eelegendő védelmet nyújt ez a programkód?
rossz az elképzelés
jobb az a megközelítés amikor
escape vs filter
csak amiket amúgy is kiszűrnék
még mindig escape vs filter
az ehhez hasonló speciális jelentéssel is bíró karaktereket nem szűrni (filter) kell, hanem kivédeni (escape) az általa okozott problémát.
Igazad van