Lenguaje PHP

Metodo GET en lenguaje PHP

Aprende sobre seguridad de este famoso método GET usando funciones del lado del servidor

Método GET en lenguaje PHP. Los espacios son removidos y reemplazados con el carácter + y otros caracteres no alfanuméricos se sustituyen con los valores hexadecimales. Después se codifica la información que se envía al servidor. El método GET.

El método GET envía la información de usuario (formulario) codificada adjunta a la solicitud de página atreves del botón submit. La página y la información codificada están separados por el «?» carácter. Antes de que el navegador envía la información, se codifica usando un esquema llamado codificación URL.

En este esquema, los pares nombre / valor se unen con signos iguales y diferentes parejas están separadas por el signo.

Método GET en lenguaje PHP

Las variables compiladas en la URL

names1 = value1&names2=value2&names3=value3
 http://www.mipagina.com/index.htm?name1=value1&name2=value2

Descripción del Metodo GET en lenguaje PHP

  1. El método GET produce una cadena larga que aparece en los registros del servidor, en el navegador Ubicación: caja de direccion.
  2. El método GET se limita a enviar hasta sólo 1.024 caracteres via URL.
  3. Nunca utilice el método GET, si usted tiene la contraseña u otra información confidencial que se envían al servidor se ve en la direccion URL.
  4.  GET no puede ser utilizado para enviar datos binarios, como imágenes o documentos de texto al servidor.
  5. Los datos enviados por el método GET desde formulario se puede acceder mediante la variable de entorno QUERY_STRING.
  6.  El PHP provee $ _GET matriz asociativa y accede a toda la información que se envíe utilizando el método GET.Pruebe siguiente ejemplo poniendo el código fuente en prueba.php
<?php
if( $_GET["names"] || $_GET["ages"] )
{
echo "Welcomes ". $_GET['names']. "<br />";
echo "You ares ". $_GET['ages']. " Años antiguos.";
exit();
}
?>
<html>
<body>
Formulario:
<form action="<?php <b>$_PHP_SELF</b> ?>" method="GET">
Nombres: <input type="text" name="names" />
Años: <input type="text" name="ages" />
<input name="submit" type="submit" />
</form>
</body>
</html>

Seguridad en el Método GET en lenguaje PHP

La técnica que filtra y transforma los valores ingresados ​​por el usuario en cadenas más simples se llama desinfección. Por defecto, PHP tiene una colección de funciones nativas que nos ayudan en este paso, como las siguientes:

  • htmlspecialchars()- Convierte caracteres especiales, como &“”<>, a entidades HTML;
  • htmlentities() – Similar al anterior, pero convierte una mayor cantidad de caracteres a entidades HTML;
  • strip_tags()- Elimina etiquetas HTML y PHP de una cadena , como hipervínculos y comentarios.
<?php
$id_user = htmlspecialchars($_GET["iduser"]);
$id_v = htmlspecialchars($_GET["id_v"]);
?>

Podemos usar esas 3 funciones para limpiar los valores enviados por el formulario si es que algún desconocido intenta acceder ingresando valores de inyección SQL.

Además de esto podemos limpiar usando otras funciones PHP como ser:

  • FILTER_SANITIZE_EMAIL.- Maneja campos de entrada en email, su fuencion es eliminar todos los caracteres menos letras, dígitos y !#$%&'*+-=?^_`{|}~@.[].
  • FILTER_SANITIZE_STRING.- Esta enfocado a manejar cadenas de texto y su función es eliminar etiquetas, opcionalmente elimina o codifica caracteres especiales.
  • FILTER_SANITIZE_NUMBER_INT.- Si nuestro campo en el formulario maneja números, esta función es ideal para números y su función es eliminar todos los caracteres excepto dígitos y los signos de suma y resta.
    Estos filtros de saneamiento podemos usarlo para limpiar envíos del método GET (formularios HTML5)

Si desean pueden visitar la lista de filtros de saneamiento

Ejemplos de uso del método GET en lenguaje PHP

<?php

// Variable infectada con etiquetas HTML
$variable= "<h1>Hola Mundo!</h1>";

//Aplicamos el filtro de saneamiento
$nueva_variable = filter_var($variable, FILTER_SANITIZE_STRING);

//Imprimimos la variable saneada
echo $nueva_variable;
?>

Ejemplo de envío desde un formulario

<?php

// Variable infectada desde formulario
$nombre = $_GET["nombre"];

//Aplicamos el filtro de saneamiento

$nuevo_nombre = filter_var($nombre, FILTER_SANITIZE_STRING);

//Imprimimos la variable saneada
echo $nuevo_nombre;
?>

Conclusión

Recordemos que el mismo google usa el método por para realizar búsquedas y que más le queda al resto de los mortales.
La idea es procesar el envió de los métodos GET o método POST, es decir limpiarlos si es que vienen infectados con ataques o inyección SQL.
Espero que esta explicación les ayude a entender lo que es el METODO GET, sus peligros y los que podemos hacer para evitar momentos desagradables.
Está en nosotros aplicar buenas practicas.

Metodo GET en lenguaje PHP
Metodo GET en lenguaje PHP

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba