Latest web development tutorials
×

PHP curso

PHP curso PHP breve introducción PHP instalar PHP gramática PHP variable PHP echo/print PHP Tipos de datos PHP constante PHP cadena PHP operadores PHP If...Else PHP Switch PHP formación PHP Ordenación de un conjunto PHP superglobals PHP While circulación PHP For circulación PHP función PHP Las variables mágicas PHP Los espacios de nombres PHP Orientado a Objetos

PHP formulario

PHP formulario PHP autenticación de formularios PHP formulario - Los campos necesarios PHP formulario - correo electrónico de verificación y la URL PHP instancia completa formulario PHP $_GET variable PHP $_POST variable

PHP Tutorial avanzado

PHP Las matrices multidimensionales PHP fecha PHP contener PHP expediente PHP Cargar archivo PHP Cookie PHP Session PHP E-mail PHP seguridad E-mail PHP Error PHP Exception PHP filtro PHP filtro avanzado PHP JSON

PHP 7 nuevas características

PHP 7 nuevas características

PHP base de datos

PHP MySQL breve introducción PHP MySQL conexión PHP MySQL La creación de una base de datos PHP MySQL Crear una tabla de datos PHP MySQL insertar datos PHP MySQL Insertar datos múltiples PHP MySQL Sentencias preparadas PHP MySQL leer datos PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX breve introducción AJAX PHP AJAX base de datos AJAX XML AJAX búsqueda en tiempo real AJAX RSS Reader AJAX voto

PHP Manual de referencia

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Procesamiento de imágenes PHP RESTful

filtro de PHP

filtro de PHP se utiliza para validar y filtrar datos de fuentes inseguros, como la entrada del usuario.


¿Qué es un filtro de PHP?

filtro de PHP se utiliza para validar y filtrar datos de fuentes inseguras.

Prueba, validar y filtro de entrada de usuario o datos personalizados es una parte importante de cualquier aplicación web.

PHP extensión de filtro está diseñado para hacer que los datos de filtrado más fácil y más rápido.


¿Por qué utilizar un filtro?

Casi todas las aplicaciones web son dependientes de insumos externos. Estos datos suelen provenir de los usuarios u otras aplicaciones (como los servicios web). Mediante el uso de filtros, puede asegurarse de que las aplicaciones reciben el tipo de entrada correcto.

Siempre se debe filtrado de datos externa!

Los filtros de entrada son los temas más importantes en seguridad de aplicaciones.

Qué son los datos externos?

  • Los datos de entrada de un formulario
  • galletas
  • datos de servicios Web
  • Las variables de servidor
  • resultados de la consulta de base de datos

Funciones y Filtros

Para filtrar una variable, utilice una de las siguientes funciones de filtro:

  • filter_var () - para filtrar una sola variable a un filtro especificado
  • filter_var_array () - para filtrar múltiples variables por los mismos o diferentes filtros
  • filter_input - Obtener una variable de entrada y filtrarla
  • filter_input_array - Obtener más variables de entrada, y por los mismos o diferentes filtros para filtrarlas

En el siguiente ejemplo, utilizamos filter_var () función, se valida un número entero:

<?php
$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))
{
	echo("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

El código anterior utiliza el filtro "FILTER_VALIDATE_INT" para filtrar la variable. Dado que el número entero es legítima, por lo que la anterior salida de código de voluntad:

Si tratamos de utilizar una variable no entero (como "123abc"), es la salida: "Entero no es válido".

Para obtener una lista completa de las funciones y filtros, visite nuestro PHP Manual del filtro de referencia .


Validación y Desinfección

Hay dos tipos de filtros:

La validación de filtros:

  • Se utiliza para validar la entrada del usuario
  • normas estrictas de formato (como la verificación de URL o de correo electrónico)
  • Si tiene éxito, el tipo de rendimiento esperado, si no devuelve FALSO

Desinfección filtros:

  • Se utiliza para permitir o prohibir la cadena de caracteres especificada
  • No hay reglas de formato de datos
  • Siempre devuelve la cadena

Opciones y banderas

Las opciones y las banderas se utilizan para añadir opciones adicionales de filtrado de los filtros especificados.

Diferentes filtros tienen diferentes opciones y banderas.

En el siguiente ejemplo, utilizamos filter_var () y "min_range" y la opción "max_range" para verificar un número entero:

<?php
$var=300;

$int_options = array(
	"options"=>array
	(
		"min_range"=>0,
		"max_range"=>256
	)
);

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
	echo("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

Al igual que el código de seguridad, como la opción relevante debe ser colocado en una matriz denominada "opciones" en. Si no se requiere una bandera dentro de la matriz.

Dado que el número entero es "300", que no está dentro del rango especificado, la salida del código anterior será:

不是一个合法的整数

Para obtener una lista completa de las funciones y filtros, visite nuestro PHP Manual del filtro de referencia . Puede ver las opciones disponibles para cada filtro y banderas.


La validación de entrada

Vamos a tratar de validar la entrada de un formulario.

Tenemos que hacer primero es confirmar que los datos de entrada que está buscando.

Luego se utiliza la función filter_input () para filtrar los datos introducidos.

En el siguiente ejemplo, la variable de entrada "e-mail" se pasa a la página PHP:

<?php
if(!filter_has_var(INPUT_GET, "email"))
{
	echo("没有 email 参数");
}
else
{
	if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
	{
		echo "不是一个合法的 E-Mail";
	}
	else
	{
		echo "是一个合法的 E-Mail";
	}
}
?>

Los ejemplos de los resultados anteriores fueron como sigue:

Los ejemplos explicados

El ejemplo anterior tiene una variable de entrada por (correo electrónico) "GET" método de transferencia:

  1. La detección de la presencia de tipo "e-mail" variable de entrada "GET"
  2. Si hay una variable de entrada para detectar si se trata de una dirección de correo electrónico válida

purificación de entrada

Vamos a tratar de aclarar proveniente de una forma de URL.

En primer lugar, tenemos que confirmar que los datos de entrada que está buscando.

Luego desinfectar función de entrada de datos filter_input ().

En el siguiente ejemplo, la variable de entrada "URL" se pasa a la página PHP:

<?php
if(!filter_has_var(INPUT_GET, "url"))
{
	echo("没有 url 参数");
}
else
{
	$url = filter_input(INPUT_GET, 
	"url", FILTER_SANITIZE_URL);
	echo $url;
}
?>

Los ejemplos explicados

Ejemplos de lo anterior por una variable de entrada (url) "GET" método enviados:

  1. La detección de la presencia de tipo "URL" variables de entrada "GET"
  2. Si existe la variable de entrada, su purificación (eliminación de caracteres no válidos), y lo almacenará en la variable $ url

Si la variable de entrada es una cadena como esta: "http://www.ruaanoob.com/", la variable $ url después de la purificación es el siguiente:



Una pluralidad de filtro de entrada

Formas a menudo consisten en múltiples campos de entrada. Para evitar filter_var o filter_input función llamada en varias ocasiones, podemos utilizar el filter_var_array o función filter_input_array.

En este caso, utilizamos filter_input_array () para filtrar tres variables GET. Recibido las variables GET es un nombre, una edad y una dirección de correo electrónico:

<?php
$filters = array
(
	"name" => array
	(
		"filter"=>FILTER_SANITIZE_STRING
	),
	"age" => array
	(
		"filter"=>FILTER_VALIDATE_INT,
		"options"=>array
		(
			"min_range"=>1,
			"max_range"=>120
		)
	),
	"email"=> FILTER_VALIDATE_EMAIL
);

$result = filter_input_array(INPUT_GET, $filters);

if (!$result["age"])
{
	echo("年龄必须在 1 到 120 之间。<br>");
}
elseif(!$result["email"])
{
	echo("E-Mail 不合法<br>");
}
else
{
	echo("输入正确");
}
?>

Los ejemplos explicados

El ejemplo anterior tiene tres variables de entrada (nombre, edad y correo electrónico) transmitidas a través del método "GET":

  1. Configurar una matriz que contiene los nombres de las variables de entrada se utilizan para especificar las variables de entrada y filtro
  2. () Función, los parámetros de entrada, incluidas las variables GET y acaba de establecer la llamada matriz filter_input_array
  3. Detección $ resultado "edad" variable y variable de entrada "e-mail" es ilegal. (Si no hay entrada ilegal, después de la función de uso filter_input_array (), la variable de entrada es FALSO.)

filter_input_array () El segundo argumento de la función puede ser una matriz o un único ID de filtro.

Si el parámetro es un único ID de filtro, el filtro especificado filtrará todos los valores de la matriz de entrada.

Si este parámetro es una matriz, la matriz debe cumplir con las siguientes reglas:

  • Debe ser un array asociativo que contiene una variable de entrada es una clave de la matriz (como variable de entrada "edad")
  • El valor de esta matriz debe ser un ID de filtro, o las disposiciones del filtro, banderas y opciones matrices

Devolución de llamada Uso del filtro

Mediante el uso de filtros FILTER_CALLBACK, puede llamar a una función personalizada, lo utilizan como un filtro para su uso. Por lo tanto, tenemos un control completo sobre el filtrado de datos.

Usted puede crear su propia función personalizada, o puede utilizar un funciones PHP existentes.

Usted estará listo para utilizar la función de filtro, de acuerdo con las disposiciones especificadas opciones predeterminadas método. En un array asociativo con el nombre de "opciones".

En el siguiente ejemplo, se utiliza una función personalizada de todos "_" convertido a los espacios:

<?php
function convertSpace($string)
{
	return str_replace("_", ".", $string);
}

$string = "www_w3big_com!";

echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>

El resultado del código anterior es la siguiente:

Los ejemplos explicados

Los ejemplos anteriores todos "_" en "".:

  1. Para crear un "_" se sustituye por "." Función
  2. función de llamada filter_var (), que son los parámetros de filtro y FILTER_CALLBACK matriz que contiene nuestra función