Foros del Web » Programando para Internet » PHP »

Medidas de seguridad a tomar en web

Estas en el tema de Medidas de seguridad a tomar en web en el foro de PHP en Foros del Web. Hola a todos, Os explico, desde hace 4 o 5 años gestiono una web, eso me ha hecho ir aprendiendo php de forma autodidacta, modificando ...
  #1 (permalink)  
Antiguo 14/02/2013, 05:26
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 12 años
Puntos: 3
De acuerdo Medidas de seguridad a tomar en web

Hola a todos,
Os explico, desde hace 4 o 5 años gestiono una web, eso me ha hecho ir aprendiendo php de forma autodidacta, modificando cosas al principio más sencillas y poco a poco más complejas. Pero el no haber asistido a una escuela para aprender a programar hace que en ciertas ocasiones desconozca los peligros que pueden haber por no tomar las medidas de seguridad oportunas.

Me gustaria que me ayudarais facilitando codigo y links o cualquier material para poder tener un sitio lo más seguro posible.

Alguna funcion para evitar los ataques por "injection sql" y "XSS" sería bienvenida.

Algunas dudas para comenzar :
- ¿Hay que tomar alguna precaucion para evitar ataques por la barra de direccion del navegador? En un CMS que usaba habia este codigo:
Código PHP:
$direccion $_SERVER["REQUEST_URI"];
if (
eregi("(\./)|(://)|(\.%2F)|(:%2F%2F)|(%3A)|(<)|(>)|(%3C)|(%3E)|(admin=)|(user=)|(http)|(ftp)|(pwd)|(nuke_authors)|(radminsuper)|(union)|(/\*.*\*/)|(%25)|(dW5pb24)|(VU5JT04)",$direccion)){
$direccion2 base64_encode($direccion);
Header("Location: security.php?codigo=$direccion2");
die();

Pero por ejemplo si creaba un post que se llamara "La reunion más esperada" saltaba la seguridad al contener "union" en la barra de dirección.

- Cuando recibes algo por POST o por GET ¿bastaría con por ejemplo aplicar:
Código PHP:
$titulo mysql_real_escape_string($_POST["titulo"]); 
y filtrar con una funcion que evite el XSS y la injection sql?

No sé cualquier aportación, aclaración y consejo será bienvenido.
Un saludo!
  #2 (permalink)  
Antiguo 14/02/2013, 06:20
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Medidas de seguridad a tomar en web

aqui hay mucha info y terminos que debes de tener en cuenta

http://www.forosdelweb.com/f18/seguridad-web-1004102/

mi recomendacion ante la inyeccion es usar alfanumericos y validar los datos de entrada como tal , en aquellos campos que no puedan ser alfanumericos los validas segun su tipo , es decir aplicamos en toda la web alfanumericos asi evitamos cualquier caracter extraño que no sea numeros o letras y evitamos asi muchas vulnerabilidades web de golpe
  #3 (permalink)  
Antiguo 14/02/2013, 06:25
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 11 meses
Puntos: 13
Respuesta: Medidas de seguridad a tomar en web

Cuando se habla de evitar SQLi y XSS, se deben aplicar filtros y validaciones a los datos introducidos (no solo a los campos GET provenientes de la URL, sino a TODOS los que no controlas). Por lo general aplicar filtros genéricos siempre genera problemas.
Lo primero que debes validar es que se tenga el conjunto de caracteres que sean necesarios (por ejemplo, si es un número, no hace falta hacer una cantidad de validaciones grande, con solo poner un cast a entero es suficiente).
Por lo general para evitar SQLi lo que debes hacer es pasar por la función que da el DBMS para dicha tarea, en tu caso mysql_real_escape_string. Para XSS la forma más simple es con htmlentities que va a transformar los caracteres HTML en sus entidades equivalentes, es decir < en &lt; lo cual "desarma" las etiquetas HTML.

Etiquetas: injection, seguridad, sql, xss
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 11:06.