Logo Studenta

Qué son los filtros de saneamiento (Sanitización) de datos

¡Estudia con miles de materiales!

Vista previa del material en texto

¿Qué son los filtros de saneamiento (Sanitización) de datos en PHP y cómo se utilizan? 
 
Los filtros de saneamiento (sanitización) de datos en PHP son una técnica utilizada para 
limpiar y validar los datos ingresados por los usuarios antes de ser utilizados en la aplicación. 
Estos filtros ayudan a prevenir ataques de inyección de código y mejoran la seguridad y la 
integridad de los datos en la aplicación. 
 
PHP proporciona una serie de funciones predefinidas que permiten aplicar diferentes filtros 
de saneamiento a los datos, asegurándose de que se ajusten a formatos válidos o 
eliminando caracteres peligrosos. Los filtros de saneamiento no modifican los datos en sí, 
sino que generan una versión limpia y segura de los mismos. 
 
**Algunos de los filtros de saneamiento más comunes en PHP son:** 
 
1. `filter_var()`: Esta función se utiliza para filtrar una variable con un filtro específico. 
Puedes aplicar varios filtros, como `FILTER_SANITIZE_STRING`, `FILTER_SANITIZE_EMAIL`, 
`FILTER_SANITIZE_URL`, etc. 
 
```php 
$dirtyString = '<script>alert("Hola");</script>'; 
$cleanString = filter_var($dirtyString, FILTER_SANITIZE_STRING); 
echo $cleanString; // Output: alert("Hola"); 
``` 
 
2. `filter_input()`: Esta función se utiliza para obtener una variable externa y aplicarle un 
filtro al mismo tiempo. 
 
```php 
$dirtyEmail = $_POST['email']; 
$cleanEmail = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); 
``` 
 
3. `filter_input_array()`: Esta función se utiliza para obtener y filtrar varios valores de una 
vez. 
 
```php 
$filters = array( 
 'name' => FILTER_SANITIZE_STRING, 
 'email' => FILTER_SANITIZE_EMAIL, 
 'age' => FILTER_SANITIZE_INT, 
); 
 
$cleanData = filter_input_array(INPUT_POST, $filters); 
``` 
 
4. `filter_var_array()`: Similar a `filter_input_array()`, pero trabaja con un array dado en 
lugar de variables externas. 
 
```php 
$dirtyData = array( 
 'name' => '<script>alert("Ataque");</script>', 
 'email' => 'correo@dominio.com', 
); 
 
$filters = array( 
 'name' => FILTER_SANITIZE_STRING, 
 'email' => FILTER_SANITIZE_EMAIL, 
); 
 
$cleanData = filter_var_array($dirtyData, $filters); 
``` 
 
**Es importante tener en cuenta lo siguiente:** 
 
- Los filtros de saneamiento no garantizan la seguridad completa de los datos, por lo que 
también es importante utilizar medidas adicionales para prevenir ataques de inyección de 
código, como utilizar consultas preparadas y escapar correctamente los datos antes de 
insertarlos en una consulta SQL. 
 
- Los filtros de saneamiento son útiles para limpiar los datos de entrada, pero en ciertos 
casos, como en campos de contraseñas, es mejor no aplicar ningún filtro de saneamiento 
para evitar la pérdida de caracteres especiales. 
 
- La elección del filtro adecuado dependerá del tipo de datos y la finalidad del uso. Es 
importante seleccionar el filtro más apropiado para cada caso. 
 
En resumen, los filtros de saneamiento en PHP son una herramienta útil para limpiar y 
validar los datos de entrada, mejorando la seguridad y la integridad de la aplicación web. Al 
utilizarlos adecuadamente, puedes mitigar el riesgo de ataques de inyección y mejorar la 
experiencia del usuario al garantizar que los datos ingresados sean seguros y válidos.

Continuar navegando