Ho un sacco di input dell'utente da $_GET
e $_POST
... Al momento scrivo sempre mysql_real_escape_string($_GET['var'])
..L'ultimo pulita funzione/secure
Vorrei sapere se si potrebbe fare una funzione che protegge, fugge e pulisce subito gli array $_GET
/$_POST
, quindi non dovrai occupartene ogni volta che lavori con gli input dell'utente e così via.
Stavo pensando di una funzione, per esempio cleanMe($input)
, e al suo interno, che dovrebbe fare mysql_real_escape_string
, htmlspecialchars
, strip_tags
, stripslashes
(penso che sarebbe tutto per rendere pulito & sicuro) e poi restituire il $input
.
Quindi è possibile? Fare una funzione che funziona per tutti $_GET
e $_POST
, così si dovrebbe fare solo questo:
$_GET = cleanMe($_GET);
$_POST = cleanMe($_POST);
Quindi nel tuo codice in seguito, quando si lavora con per esempio $_GET['blabla']
o $_POST['haha']
, essi sono garantiti, spogliati e così via?
me provato un po ':
function cleanMe($input) {
$input = mysql_real_escape_string($input);
$input = htmlspecialchars($input, ENT_IGNORE, 'utf-8');
$input = strip_tags($input);
$input = stripslashes($input);
return $input;
}
'stripslashes()' * dopo * 'mysql_real_escape_string()' ... i miei eyeees! – jensgram
Penso che la sicurezza dei dati dipenda da ciò che fanno e da dove provengono. Tutti i tuoi trattamenti non sono necessariamente necessari. – MatTheCat
L'utilizzo di una funzione di sterilizzazione master monouso non è la soluzione giusta. Ecco perché [citazioni magiche] (http://php.net/manual/en/security.magicquotes.php) non è riuscito. Fuga (o usare soluzioni migliori come le dichiarazioni preparate) * se e quando * ne hai bisogno. Altrimenti, scoprirai di scappare nei momenti sbagliati, e spesso più di una volta. Tutte queste funzioni hanno scopi molto diversi, e diverse (ad esempio 'mysql_real_escape_string' e' stripslashes') sono essenzialmente inverse. Vedi [Qual è il miglior metodo per sanitizzare l'input dell'utente con PHP? ] (http: // stackoverflow.it/questions/129677) per maggiori informazioni. –