Foros del Web » Programando para Internet » PHP »

Recoger datos del usuario con seguridad

Estas en el tema de Recoger datos del usuario con seguridad en el foro de PHP en Foros del Web. Hola, hace poco abri un tema porque queria añadir en una web codigo (php,html,c++,...) y enconte geshi que hace todo esto de maravilla. Pero solo ...
  #1 (permalink)  
Antiguo 23/06/2008, 03:01
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 17 años, 3 meses
Puntos: 21
Recoger datos del usuario con seguridad

Hola, hace poco abri un tema porque queria añadir en una web codigo (php,html,c++,...) y enconte geshi que hace todo esto de maravilla. Pero solo con geshi no consegui hacer lo que queria, pero gracias a la ayuda de este foro instale fckeditor + plugin geshi y perfecto.

Bueno pues cuando los datos que escribe el usuario (fckeditor+geshi) son enviados al fichero php para introducirlos en la base de datos, lo realizo de la siguiente forma:

Código PHP:
htmlentities(stripslashes(urldecode($_POST['FCKeditor1'])),ENT_QUOTES); 
Yo utilizaba normalmente strip-tags, pero claro utilizando esta me elimino todas las etiquetas, eliminado asi los etilos y el coloreado de los codigos.

Lei que php tiene una funcion para escapar cadenas llamda addslashes la utilice en lugar de la que utilzo actualmente stripslashes pero entonces geshi no colorea el codigo.

En definitiva, es seguro ante ataques XSS o de otro tipo utilizar solo htmlentities para filtrar los datos que introduce el usuario ?

gracias.
  #2 (permalink)  
Antiguo 23/06/2008, 08:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Recoger datos del usuario con seguridad

NO es seguro.... completamente, porque no lees un articulo (aunque sea de Wikipedia) ???

de echo ni siquiera existe lo que intentas ante un ataque XSS, por lo de los formatos en la base de datos es mas fácil de lo que parece... digo, porque mientras este en la BD es inofensivo ese HTML....

- guárdalo sin usar htmlentitites() en la base de datos, asegúrate solo que se conserven bien las comillas.... solo eso
- cuando lo recuperes ahora si puedes pasar el codigo por GeSHi y despues al FCKeditor, solo que esta ultima ves... lo codificas (si fuere necesario)

PDTA: lo digo, porque yo tambien he usado editores y resaltadores.... que por cierto, ¿editas el código resaltado por GeSHi con el FCKeditor???

eso es como que tonto.... primero, seria editarlo... y al final, resaltarlo!!! bueno... esa es la mejor combinación, no al revés

bueno, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/06/2008, 08:47
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Recoger datos del usuario con seguridad

no te termino de entender completamente....

tengo un textarea con kfceditor. Cuando escribo con este editor añade las etiquetas html que dan formato al texto y asi se guardan en la base de datos. Si escribo codigo fuente con geshi en kfceditor este le añade las etiquetas html y estilos para colorear el codigo y asi es como se guarda. Despues muestro este codigo en el navegador que interpreta estas etiquetas y sale con el formato que yo habia dado.

Segun dices
Cita:
cuando lo recuperes ahora si puedes pasar el codigo por GeSHi y despues al FCKeditor
entonces como se que es texto y que es codigo fuente y como se que texto va en negrita, ... ?¿

Cita:
eso es como que tonto.... primero, seria editarlo... y al final, resaltarlo!!! bueno... esa es la mejor combinación, no al revés
el procedimiento que utilizo es:

1- editor fckeditor --> texto con formato (negrita,subrayado,...).
2.-guardo en BD
3.-recupero y pongo en el textarea que tiene fckeditor, este entiende las etiquetas y vuelve a poner el texto con el formato que yo le di.
4.- modifico y guardo.

¿ porque esta mal este procedimiento ?

Un saludo y gracias por el tiempo.
  #4 (permalink)  
Antiguo 23/06/2008, 08:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Recoger datos del usuario con seguridad

porque estas codificando de mas... dices que tienes conflictos no???

pues ya lo dije.... no codifiques nada, seguro.... después de todo, eso no basta para evitar XSS (es conveniente que te documentes mejor sobre como funcionan los XSS)

bueno, no cuestiono tu procedimiento... sino tu manera de explicarlo, jeje... disculpa

o dime.... cual es el conflicto especifico que sucede?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/06/2008, 09:04
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Recoger datos del usuario con seguridad

sobre xss habra mucha información en internet y muchos metodos de realizar un ataque y demas... pero en resumen yo entiendo xss (corrigeme) como el proceso de que alguien inserte codigo en tu web alterandola.

Entonces basado en eso, si utilizo un editor (fckeditor) que lo que hace es añadir estiquetas html a mi texto en el textarea para darle formato de negrita,subrayado,color,etc... si en el momento de recoger los datos utilizo strip_tags (que segun la documentacion elimina las etiquetas php y html) perdere los estilos que cree con el editor. Es cierto que se puede decir a strip_tags que etiquetas debe permitir, pero al ser muchas, pense en que seguramente habria otra forma de asegurar el codigo frente a estos ataques.

Entonces mi pregunta es simplemente como recoger los datos del usuario de forma segura para evitar algun ataque xss y a la vez permitir que este texto tenga etiquetas html y estilos.

sobre geshi, solo quiero que muestre mis codigos fuente coloreados y que el navegador no los interprete.
  #6 (permalink)  
Antiguo 23/06/2008, 09:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Recoger datos del usuario con seguridad

correcto!

bueno... justo aquí en el foro se publico un aporte (post) de alguna función anti-XSS, esta puede servir para tal propósito....

Enlace:
http://quickwired.com/smallprojects/...r_function.php

con respecto a GeSHi, recuerda que no es necesario codificar el HTML para que lo resalte, ya que lo hace automáticamente....

asi que al momento de guardar los datos, una ves procesados con el anti-XSS no los codifiques mas y simplemente almacenalos....

cuando los recuperes.... tampoco los codifiques, ya esta claro que GeSHi lo resaltara, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 13:04.