Ejemplo practico de ob_start()

Iniciado por Skeletron, 3 Marzo 2010, 20:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Recien observaba aqui: :http://www.php-es.com/function.ob-start.html

Y digamos que es la primera vez que escucho hablar de esa funcion.

Podria usar esa funcion para evitar XSS?
Digamos que, al terminar el codigo de la web, llamo al end ob, y que la funcion haga un ECHO htmlentities($bufer); así se evita XSS de cualquier tipo...

Espero su recomendacion :)

raul338

No entiendo que tiene que ver esa funcion con XSS, o sea, no vas a poner un XSS directo en tu pagina, ya que eso lo que hace es imprimir en la salida, por lo que no convendria analizar los datos ahi

Skeletron

:O
Pero tio... eso reemplaza los caracteres que pueden llegar a dar un ataque XSS...

Si a todo el texto de salida le aplico el htmlentities(), se reemplanzan esos caracteres (los que harían el XSS)...

WHK

no, no es práctico para evitar xss porque es lo mismo a tener una variable get o post con el buffer del contenido y si vas a filtrar toda la web completa mejor usa sistemas como phpids que usa reglas en expresiones regulares.

ob_start() sirve para iniciar la obtenciónd el buffer y te lo debuelve si se lo pides con ob_ get_ contents.

Generalmente se usa para manipular todo un contenido como si estubieras imprimiendo el contenido pero realmente se va a un buffer.

de hecho php lo hace por defeto solo que cuando lo redeclaras se crea un nuevo objeto y se trabaja con el.

Te puede servir como para cosas como esta:
http://foro.elhacker.net/nivel_web/pcu_como_modificar_el_footer_de_smf_incluyendo_el_copyright-t285208.0.html

Baaaw Oic

Yo solo lo uso cuando uso el header() xD

Skeletron

WHK, si hago un:
echo htmlentities(ob_ get_ contents);

??? No funcionaría?
O me imprimiría la web 2 veces?