que tienen una gran cantidad de entradas de usuario desde $_GET
y $_POST
... En el momento en que escribo siempre mysql_real_escape_string($_GET['var'])
..La última función de limpieza/seguro
me gustaría saber si se puede hacer una función que asegura, escapa y limpia las matrices $_GET
/$_POST
de forma inmediata, por lo que no tendrá que lidiar con ellas cada vez que trabaje con entradas de usuario y cosas así.
Estaba pensando en una función, por ejemplo cleanMe($input)
, y dentro de ella, se debe hacer mysql_real_escape_string
, htmlspecialchars
, strip_tags
, stripslashes
(creo que sería todo para que sea limpio & seguro) y luego devolver el $input
.
¿Es esto posible? Haciendo una función que funcione para todos $_GET
y $_POST
, por lo que lo haría sólo esto:
$_GET = cleanMe($_GET);
$_POST = cleanMe($_POST);
Así que en su código más tarde, cuando se trabaja con por ejemplo $_GET['blabla']
o $_POST['haha']
, están garantizados, despojados y así sucesivamente?
Probamos un poco de mi:
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()' * después * 'mysql_real_escape_string()' ... mis eyeees! – jensgram
Creo que la seguridad de los datos depende de lo que hacen y de dónde vienen. Todos sus tratamientos no son necesariamente necesarios. – MatTheCat
El uso de una función de desinfección maestra por única vez no es la solución correcta. Es por eso que [citas mágicas] (http://php.net/manual/en/security.magicquotes.php) fallaron. Escape (o use mejores soluciones como declaraciones preparadas) * si y cuando * lo necesite. De lo contrario, descubrirá que está escapando en el momento equivocado, y a menudo más de una vez. Todas esas funciones tienen propósitos muy diferentes, y varias (por ejemplo, 'mysql_real_escape_string' y' stripslashes') son esencialmente inversas. Consulte [¿Cuál es el mejor método para desinfectar la entrada del usuario con PHP? ] (http: // stackoverflow.com/questions/129677) para más información. –