Ver Mensaje Individual
  #13 (permalink)  
Antiguo 21/02/2009, 16:01
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Escondiendo Variables (GET)!

Cita:
Iniciado por Ronruby
$REQUEST_URI se usa cuando register_globals esta on, eso si es un gran riesgo de seguridad.
Exacto, de hecho, el principal riesgo de recibir parametros (GET o POST) es tener register_globals activado. Entonces, ademas de deshabilitar register_globals, la mejor forma de garantizar la seguridad es evaluar y validar cada variable recibida, porque se puede "ofuscar", encriptar y tratar de ocultar las variables por cualquier metodo, pero si no hay una buena validacion es casi como cerrar tu auto, poner alarma y colocar las llaves debajo de la llanta, esperando que nadie las encuentre.

Es decir, si esperas una cadena, verifica que el dato recibido sea una cadena, con la longitud deseada y reemplazando caracteres especiales por sus respectivos codigos html; si esperas un dato numerico, asegurate de que realmente sea asi, con doubleval(), intval() o simplemente multiplicando por 1.

Otras practicas de seguridad:

Nunca uses directamente $_GET['variable'] o $_POST['variable'] ni $_REQUEST['variable'] en consultas a base de datos.

Asegurate de inicializar cada variable esperada (por GET o POST):
Código php:
Ver original
  1. // Por asignacion ternaria:
  2. $variable = (isset($_GET['variable'])) ? html_entities(trim($_GET['variable'])) : '';
  3.  
  4. // Con if - then - else convencional
  5. if(isset($_GET['variable']))
  6.     $variable = html_entities(trim($_GET['variable']));
  7. else
  8.     $variable = '';
  9.  
  10. // Despues validas lo recibido
  11. // Cadenas con strlen() y numeros con mayor que, menor que o igual a
__________________
- León, Guanajuato
- GV-Foto