Foros del Web » Programando para Internet » PHP »

Estoy creandome un script de usuarios [pregunta seguridad]

Estas en el tema de Estoy creandome un script de usuarios [pregunta seguridad] en el foro de PHP en Foros del Web. Buenas noches, Como comento estoy creando un script de registro de usuarios, he visto que ya has algunas prefabricados, pero ya que "me dedico" al ...
  #1 (permalink)  
Antiguo 23/02/2011, 16:03
 
Fecha de Ingreso: octubre-2010
Ubicación: Aachen
Mensajes: 160
Antigüedad: 13 años, 6 meses
Puntos: 22
Estoy creandome un script de usuarios [pregunta seguridad]

Buenas noches,

Como comento estoy creando un script de registro de usuarios, he visto que ya has algunas prefabricados, pero ya que "me dedico" al php como hobbie y entre otras cosas no tengo tiempos de entrega (al no tener clientes) prefiero hacerlo desde cero.


La duda que me surge es:

Como puedo incrementar la seguridad del script, encriptar contraseñas, evitar posibles ejecuciones de código malicioso, etc...

Me podéis dar algún consejo de vuestra experiencia?

Muchísimas gracias.
  #2 (permalink)  
Antiguo 23/02/2011, 16:13
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

htmlentities(); para evitar que ejecuten código ya sea html, php, js, ect

Captcha en el registro para evitar bots.

md5(md5()); doble cifrado para evitar que roben las pass y si lo hacen que no tengan como descifrarlas.

Siempre pedir contraseña al cambiar algún dato, para borrar post no recomiendo utilizar el get porque con una simple redireccion podes borrar post erróneamente.

Fundamental, Desconfiar siempre de los usuarios que tenes y poner trabas de seguridad
  #3 (permalink)  
Antiguo 23/02/2011, 16:40
 
Fecha de Ingreso: octubre-2010
Ubicación: Aachen
Mensajes: 160
Antigüedad: 13 años, 6 meses
Puntos: 22
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

muchísimas gracias,

Mañana revisaré las funciones que me dices para ver como las implemento (ahora toca dormir ;) )

A ver si se anima más gente a sugerir cosas.
  #4 (permalink)  
Antiguo 23/02/2011, 18:41
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Siempre pedir contraseña al cambiar algún dato, para borrar post no recomiendo utilizar el get porque con una simple redireccion podes borrar post erróneamente.
Yo uso GET, pero lo que hago es verificar que el post a borrar sea del usuario que esta logeado.
Suerte
  #5 (permalink)  
Antiguo 23/02/2011, 20:53
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por almagropaco_ Ver Mensaje
Yo uso GET, pero lo que hago es verificar que el post a borrar sea del usuario que esta logeado.
Suerte
Pero por ejemplo te doy un link que redirecciona justo al link de borrar algo y vos estas logeado automáticamente, entonces te lo borra ? y vos ni enterado

Otra que podes hacer es via GET y preguntar a HTTP REFERRER que sea de tu web y no de otra.

Saludos
  #6 (permalink)  
Antiguo 23/02/2011, 21:29
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por marcofbb Ver Mensaje
Pero por ejemplo te doy un link que redirecciona justo al link de borrar algo y vos estas logeado automáticamente, entonces te lo borra ? y vos ni enterado

Otra que podes hacer es via GET y preguntar a HTTP REFERRER que sea de tu web y no de otra.

Saludos
Ese ejemplo que citas, no pasara en un entorno real. Es un ejemplo totalmente fuera de lo real. Algo asi no pasaría, y si pasa, 1 de 1,000,000,000.
Con verificar si el usuario logueado es el mismo que creo el post o mensaje es suficiente.

Ten en cuenta que la variable HTTP_REFERER depende del navegador y no todos dan esa informacion, aparte algunos permiten hasta cambiarlo.
  #7 (permalink)  
Antiguo 23/02/2011, 22:00
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Si pero lo que yo digo es:

Yo ahora te doy el link

www.tuweb.com/borrar_post.php?id=3

y es tu post y ese es el link e id para borrarlo.

entonses vos entras y no hay una barrera de seguridad

ya que las que hay

Verificar si el usuario esta logeado ( ESTA NO SIRVE YA Q ESTA LOGEADO )
Verificar si el post es tuyo ( El post es el tuyo asi q tambien pasa )

Borrar post ( chan y lo borra )

Entonses antes de borrar post tendria que aver algo que diga estas realmente seguro que queres borrar esto ?
  #8 (permalink)  
Antiguo 23/02/2011, 22:03
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Si me pasas un link asi, lo primero que leo es que la URL es bastante descriptiva. Dice BORRAR. Aparte, alguien que conozcas no haria eso y no todo el mundo anda cliqueando todo lo que le envian.
  #9 (permalink)  
Antiguo 23/02/2011, 22:45
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por Ronruby Ver Mensaje
Si me pasas un link asi, lo primero que leo es que la URL es bastante descriptiva. Dice BORRAR. Aparte, alguien que conozcas no haria eso y no todo el mundo anda cliqueando todo lo que le envian.
Pero lo haces con redireccion 301 o utilizando los cortadores de url
  #10 (permalink)  
Antiguo 24/02/2011, 02:37
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Ronruby: y si un usuario malicioso pone un sencillo código en una pagina que sabe visitaras, tal como...

<img src="http://pagina.com/script.php?borra_post=23" />

(Incluso puede usarse bbcode como el del foro para generar eso) No hay modo de que veas la url de la pagina como tal, y es mas, ni siquiera necesitas dar click en ningún lado. Con que cargues esa "imagen" y estés logueado, adiós post.

Para eso mejor usar una protección contra CSRF (que es el tipo de ataque del que hablamos en este caso).

Jo, olvidaba el tema de la pregunta...

Para empezar, lee esto. Es una lista de las vulnerabilidades mas comunes en PHP. Con eso tienes un buen comienzo ;)

Sobre la contraseña, no solo uses md5 o sha1, haz uso de algun salt para hacer mas complicado su crackeo. Referencia 1 Referencia 2
__________________
Sin Ideas

Última edición por oso96_2000; 24/02/2011 a las 03:59
  #11 (permalink)  
Antiguo 24/02/2011, 13:56
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Bueno me parece que nos fuimos de tema, y esos casos seria muy especifico porque tendria que haber un link para que se borre un post en una pagina que tendrias que estar logeado.. Seria algo muy especifico, obviamente podria pasar, pero yo no me preocupo tanto.
  #12 (permalink)  
Antiguo 24/02/2011, 15:27
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Mmh no necesariamente, almagropaco_

Si se juntan XSS con CSRF, no hace falta que haya un link como tal para borrar el post, puede hacerse una petición por post igualmente (XSS). Por eso, hay que prevenir contra el CSRF, que de cualquier modo es algo sencillo.

Hay que preocuparse por todo en esto :)
__________________
Sin Ideas
  #13 (permalink)  
Antiguo 24/02/2011, 16:08
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por oso96_2000 Ver Mensaje
Mmh no necesariamente, almagropaco_

Si se juntan XSS con CSRF, no hace falta que haya un link como tal para borrar el post, puede hacerse una petición por post igualmente (XSS). Por eso, hay que prevenir contra el CSRF, que de cualquier modo es algo sencillo.

Hay que preocuparse por todo en esto :)
Tal cual, yo me preocuparía hasta lo mas mínimo
  #14 (permalink)  
Antiguo 24/02/2011, 16:08
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

ve este comentario que deje en otra pregunta de como proteger tus archivos creando sessiones...

no se si sea lo mejor pero me ha funcionado ahorita para irme iniciando en PHP

http://www.forosdelweb.com/f18/consulta-sesiones-versiones-888830/#post3757194
  #15 (permalink)  
Antiguo 24/02/2011, 16:29
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por oso96_2000 Ver Mensaje
Ronruby: y si un usuario malicioso pone un sencillo código en una pagina que sabe visitaras, tal como...

<img src="http://pagina.com/script.php?borra_post=23" />

(Incluso puede usarse bbcode como el del foro para generar eso) No hay modo de que veas la url de la pagina como tal, y es mas, ni siquiera necesitas dar click en ningún lado. Con que cargues esa "imagen" y estés logueado, adiós post.

Para eso mejor usar una protección contra CSRF (que es el tipo de ataque del que hablamos en este caso).

Jo, olvidaba el tema de la pregunta...

Para empezar, lee esto. Es una lista de las vulnerabilidades mas comunes en PHP. Con eso tienes un buen comienzo ;)

Sobre la contraseña, no solo uses md5 o sha1, haz uso de algun salt para hacer mas complicado su crackeo. Referencia 1 Referencia 2
Usa tokens entonces ...
  #16 (permalink)  
Antiguo 24/02/2011, 17:59
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por marcofbb Ver Mensaje
md5(md5()); doble cifrado para evitar que roben las pass y si lo hacen que no tengan como descifrarlas.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #17 (permalink)  
Antiguo 24/02/2011, 18:25
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

Cita:
Iniciado por Ronruby Ver Mensaje
Usa tokens entonces ...
Precisamente, es el modo mas sencillo de prevenir el CSRF :)

Para los que les interese saber mas de eso, Wordpress los llama nonces, y aqui o aqui pueden encontrar algo mas de info sobre eso.
__________________
Sin Ideas
  #18 (permalink)  
Antiguo 24/02/2011, 20:45
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Estoy creandome un script de usuarios [pregunta seguridad]

amanitacreaciones

Hola, y mira lo que preguntas, es muy dificil de contestar.

Uno como programador sabe donde esta la falla y nunca se cierra, por naturaleza dejamos la puerta de emergencia abierta.


MD5 es historia, hay paginas que te decodifican ejemplo por lo tanto ya ni para los bots es un impedimento...

Lo mejor que podes hacer es trabajar sin cookies, sin autocomplete en los forms y sobre todo en HTTPS que es un protocolo que encripta mientras trabaja(corrijan si me equivoco).

Captcha tambien es matematica basica para los bots.

te recomiendo que los nombres de los input del form no tengan relacion alguna con su contenido ejemplo:

<input type="text" name="af124q" > y su contenido tiene que ser su APELLIDO.

Tambien si pedis codigo postal, utilices javascript para que en el input no puedas escribir simbolos (ojo si letras), y en la verificacion el contenido de ese campo no tenga letras.

Pidas una pregunta secreta donde el principio inicie con ¿ y temine con ?....

Utilizes la menor cantidad de textos posibles en especial en el form, utiliza imagenes en el cual su imagen no tenga relacion con su texto impreso en el (espero que entiendas).

Usa creatividad y cerra la puerta de emergencia.

con respecto al metodo GET que lei, si utilizas GET siempre pida confirmacion a la accion si este sita una accion y si lo podes evitar mejor ya que este queda en el historial de navegacion.

a un usuario designale:

ID USER CORREO PASS CODIGO

donde CODIGO sea un numero seteado en SESSION y en ves de utilizar el ID uses este. Despues todos los dias CODIGO por un script cambie, y no se repita. para que las URL por metodo GET caduquen

Espero que esto te sirva un poco.

yo utilizo MD5
no utilizo HTTPS por que me molesta el alerta de Certificado
El registro es re facil, y como la pagina nadie la ve no entran bots
y tengo a falta de una 4 salidas de emergencia... xD
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: seguridad, usuarios
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 20:22.