Hola PHPeros, ayer ferdi me mandó un mensaje privado indicándome que si le podría ayudar con esta variable global y claro, evidentemente le dije
que sí y aquí estoy. La verdad es que es muy fácil su uso. Te explicaré como funciona $_GET y como protegerte de ataques SQL malintencionados.
-
Un resumen en dibujo para $_POST[]
-
Un resumen en dibujo para $_GET[]
La explocación de $_POST creerás que no viene al cuento pero si importa para diferenciar el uso de $_GET y $_POST. Si has entendido el dibujo,
sigue leyendo lo que viene ahora despues si no, no sigas leyendo hasta que hayas entendido los dibujos.
- El uso de GET Tal y como te expliqué en el dibujo, $_GET[''] recoge los valores de la barra de direcciones del navegador pero hay que tener mucho cuidado con
el uso que le das ya que te podrían hacer ataques maliciosos. Bueno, aquí un ejemplo del uso de $_GET[''];
<?php
// Imaginemos que la URL es: http://mipaginaweb.com/index.php?usuario=Siquillote&nombre=AngelSamuel
$cadena_uno = $_GET['usuario']; // Esto recogería Siquillote
$cadena_dos = $_GET['nombre']; // Esto recogería AngelSamuel.
$texto = 'Su nick es '.$cadena_uno.' y su nombre real es '.$cadena_dos.'';
echo $texto; // Devolvería: Su nick es Siquillote y su nombre real es AngelSamuel
?>
Si vas a usar el método GET para hacer consultas a tu base de datos, lo mejor es proteger este metodo con algunas funciones como
htmlentities() o
htmlspecialchars(). ¿Que hacen estas funciones?. Lo que hacen es pasar una cadena de texto que contenga caracteres html a caracteres como & o &ap o algo así.
Imaginate que en la URL, pusieramos <script>alert('Hola')</script> en el navegador no saldría un texto idicando como <script>alert('Hola')</script>si no que saldría una alerta diciendo Hola. Mira la imagen que es lo que saldría:
Por eso siempre hay que proteger las variebles $_POST[] y $_GET[] con las funciones que te indique antes
|  | | |
- Protegerse de ataques maliciosos sobre $_GET[]Para evitar lo anterior y posibles SQL injectiones, vamos a poner en practica las funciones para pasar esos caracteres a invalidos para que no nos
puedan hacer nada. Voy a publicar las 2 funciones con 2 ejemplos en el mismo codigo. Mira:
limpiar.php
<?php
<?php
function Limpiar($cadena){
$limpiar_uno = htmlentities($cadena);
$limpiar_dos = htmlspecialchars($cadena);
$texto = 'Con htmlentities: '.$limpiar_uno.'<br> Con htmlspecialchars: '.$limpiar_dos.'';
echo $texto;
}
Limpiar($_GET['texto']);
// Prueba a ejecutar este archivo en la siguiente URL: limpiar.php?texto=Loquetedelarealgana. XDD
?>
Bueno, ferdi, pues esto es todo lo que he podido enseñarte, espero que lo hayas entendido a la perfección.