Cuando recibimos parámetros en un script de PHP tenemos que tener cuidado a la hora de procesarlos ya que pueden contener código malicioso.
Los datos externos pueden recibirse en PHP por las siguientes vías:
Los datos externos pueden recibirse en PHP por las siguientes vías:
- Datos de un formulario rellenado por los usuarios
- Cookies
- Servicios web
- Variables del servidor
- Resultados de queries
PHP nos ayuda con los filtros a través de filter_var().
Os pongo aquí el ejemplo para filtrar texto:
<?php
$str = "<h1>Hola mundo</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
$str = "<h1>Hola mundo</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Os pongo aquí el ejemplo para filtrar enteros:
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Es un entero válido");
} else {
echo("No es un entero válido");
}
?>
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Es un entero válido");
} else {
echo("No es un entero válido");
}
?>
Aquí validamos IP:
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip es una IP válida");
} else {
echo("$ip no es una IP válida");
}
?>
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip es una IP válida");
} else {
echo("$ip no es una IP válida");
}
?>
Aquí validamos una URL:
<?php
$url = "https://www.w3schools.com";
// Quita caracteres prohibidos y sanitiza una URL$url = filter_var($url, FILTER_SANITIZE_URL);
// Validar URLif (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url es una URL válida");
} else {
echo("$url no es una URL válida");
}
?>
$url = "https://www.w3schools.com";
// Quita caracteres prohibidos y sanitiza una URL$url = filter_var($url, FILTER_SANITIZE_URL);
// Validar URLif (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url es una URL válida");
} else {
echo("$url no es una URL válida");
}
?>
Comentarios