Páginas: [1]
Imprimir
Autor Tema: XSS (Cross Site Scripting)  (Leído 176 veces)
nemesys101
Newbie
*
Mensajes: 2


Ver Perfil
« : Julio 29, 2009, 01:31:09 »

Estoy trabajando en un proyecto en el que los usuarios escriben artículos. Necesariamente necesito aceptar un mínimo de HTML.
He implementado filtros en casi todas partes (en realidad con strip_tags queda hecho casi todo para los casos simples como el título) pero los artículos se escriben usando TinyMCE y la idea sería filtrar todos los tags salvo algunos relacionados con el formato (p,strong,em y algunos mas).
Alguien tiene experiencia con esto??
La primera, vaga e incompleta solución es usar strip_tags($string,'allowed_tags) y permitir los tags que quiero.
Ventaja adicional: aprovecho para no permitir tags que rompan el css que los diseñadores arman con tanto cariño.
Problemas: Que tengo que permitir <a> y que deja pasar todos los javascript: y por supuesto que todos los eventos pasan olímpicos (onClick, etc). Problema adicional: Si tengo 4 es < que 9 y 8 es > que 6 lo que queda impreso es '4 es que 6' Triste

Solución ir usando expresiones regulares para filtrar.  Y bueno, ando cn eso justo ahora. Alguien quiere sumarse?? Lengua
En línea
Martin
Administrator
Newbie
*****
Mensajes: 47


Ver Perfil
« Respuesta #1 : Julio 29, 2009, 04:51:37 »

No necesitas aceptar el tag < a >, simplemente create un filtro con una expresión regular que matchee el formato de una url, si machea, le agregas el tag < a > cuando filtras el contenido al ingresarlo a la bd o al mostrarlo.
En línea
neme101
Newbie
*
Mensajes: 1


Ver Perfil
« Respuesta #2 : Julio 29, 2009, 11:11:01 »

Solución semi-vaga: http://htmlpurifier.org
En realidad no es sólo vagancia sino (como le expliqué a mis empleadores) ya llevan años en esto y probablemente tengan consideradas más cosas que yo :p
Como dato, de los que miré es el que más me gustó y la actitud del loco encara Reir

Ojalá que este foro se mueva.
En línea
Páginas: [1]
Imprimir
Ir a: