Foros del Web » Programando para Internet » PHP »

alguien conoce htmLawed para que me ayude a configurlo

Estas en el tema de alguien conoce htmLawed para que me ayude a configurlo en el foro de PHP en Foros del Web. Alguien me puede ayudar a configurar htmLawed para evitar ataques xss, pero poder permitir todas las etiquetas html con sus estilos ya que lo quiero ...
  #1 (permalink)  
Antiguo 17/07/2013, 14:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
alguien conoce htmLawed para que me ayude a configurlo

Alguien me puede ayudar a configurar htmLawed para evitar ataques xss, pero poder permitir todas las etiquetas html con sus estilos ya que lo quiero implementar en un texto enriquecido, alguna ayuda, o de alguna funcion que funcione.

Saludos.
  #2 (permalink)  
Antiguo 17/07/2013, 14:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Necesitas ver estos dos temas:
- Limpiar HTML
- Evitar XSS
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/07/2013, 15:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Hola Triby, para evitar los xss me quedo claro pero para limpiar el html no, ya que lo que quiero es permitir html y css osea todo lo que se puede clear en un texto enriquecido, yo probe asin:
$config = array('safe'=>1);
$limpiar=htmLawed($_POST['variable'],$config);

creo que esto deberia permitir todo el html y evitar los script pero no me funciona.
cuando envio los datos por post utilizo ajax y el la pagina php que es donde quiero limpiar la variable que paso por post que la hice de esa forma pero no me elimina los script, no se si esque el texto enriquecido ya lo anula o algo asin uso tinyMCE.

Saludos.
  #4 (permalink)  
Antiguo 17/07/2013, 15:43
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

El ejemplo que aparece en el primer enlace tiene esto:

Código PHP:
Ver original
  1. $htmLawedConfig = array(
  2.     'elements' => '* -object',  // Permitir todas las etiquetas, excepto object
  3.     'keep_bad' => 0,        // Eliminar etiquetas malformadas o no permitidas
  4.     'clean_ms_char' => 2,   // Eliminar caracteres raros insertados por MS-Word
  5.     'comment' => 1,     // Eliminar comentarios html <!-- Esto -->
  6.     'css_expression' => 1,  // Permitir style="" en etiquetas
  7. );

Creo que está claro que en elements es donde especificas lo que quieres permitir, sólo necesitas agregar -etiqueta para cada etiqueta que deba ser eliminada.

De hecho, creo que esta es la configuración que quieres, sólo falta que elimine los scripts.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 17/07/2013, 16:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
hay una cosa que no entiendo a que te refieres que solo falta que elimine los scripts, la configuracion que posteastes elimina por completo los las etiquetas script y su interior, la configuracion que yo postee solo elimina las etiquetas dejando el interior desactivado.
Entonces a que te refieres que falta que elimine scripts?
saludos

Triby perdona tienes razon solo faltaria eliminar las etiquetas script con la configuracion que posteastes pense que las eliminaba.

Pero la configuracion que postee yo creo que ya hace todo lo que quiero, desactivar los script los comentarios, en general todos los script, menos las etiquetas html y su css, en este caso creo que solo las etiquetas xhtml y html4, eliminaria las nuevas de html5.
pero sigo confuso si por tema de seguridad esta bien.

Tengo otra pregunta sobre la funcion de gatorV usandola asin:
filterXSS('$_POST['variable']');
no elimina los comentarios no se si esto puede ser un problema.

Gracias por la ayuda un saludo.

Última edición por Triby; 17/07/2013 a las 16:36
  #6 (permalink)  
Antiguo 17/07/2013, 16:40
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

A qué te refieres con que no elimina comentarios?

De hecho, lo importante en la función de GatorV es que elimina caracteres (no imprimibles o "codificados") que pueden servir para crear etiquetas peligrosas como <script /> o <img /> con URL a scripts que permiten obtener info del usuario.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 17/07/2013, 16:51
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

me refiero a comentarios html pero no hace falta ya que la funcion seria para evitar xss, pero en realidad me da problemas la funcion de GatorV cuando intento llenar un campo oculto algo asin:
$limpia=filterXSS($_GET['variable']);
<input type='hidden' value='<?php echo$limpia;?>' name='variable'>

me da error por las etiquetas de cierre, que puedo hacer?
otra cosa con htmLawed no se puedo evitar los XSS de forma segura como la funcion de GatorV.
  #8 (permalink)  
Antiguo 17/07/2013, 17:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Se supone que htmlawed y la función para evitar ataques debes usarlas cuando procesas el formulario, así puedes guardar sin problemas ni peligros los datos.

Luego, te sugiero usar htmlentities para mostrar el valor de un campo.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 17/07/2013, 17:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Triby perdona mi torpeza pero no lo tengo nada claro de como hacerlo.
partiendo de un textarrea enriquecido como tinyMCE como se debe hacer si alguien escribe esto en el textarea
<form method='post' action='procesar.php'>
<textarrea name='texto'>
<script type='text/javascript'>alert("xss");</script>
</textarrea>
<input type='button'>
</form>
y en el script php donde recojo esa variable como tengo que hacerlo si lo que quiero es guardar la variable en un campo oculto pero guardando sus estilos css y etiquetas

yo probe asin:

$texto=filterXSS($_POST['texto']);
<input type='hidden' name='texto' value='<?php echo$texto;?>'/>
  #10 (permalink)  
Antiguo 17/07/2013, 19:14
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Insisto: www.php.net/htmlentities
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 18/07/2013, 04:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Ok Triby con htmlentities resolvi mi problema, me queda otra duda espero que me la puedas solucionar, dices que para evitar los xss y permitir los estilos que se le apliquen en el texto enriquecido como puede ser esto <p style='color:red'>parrafo rojo</p>, dices que tengo que utilizar la funcion de GatorV y htmLawed, pero no se como deberia hacerlo ya que si le paso la funcion de GatorV me elimina los estilos directamente esto no es lo que quiero, pasandole el htmLawed dejando etiquetas html y estilos no es suficiente o aun es vulnerable, quizas es mejor modificar la funcion de GatorV para permitir etiquetas html y estilos css, perdonar pero estoy echo un lio.

Saludos

Última edición por pithon; 18/07/2013 a las 05:24
  #12 (permalink)  
Antiguo 18/07/2013, 11:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Se supone que con Htmlawed ya se eliminaron todas las etiquetas peligrosas, por lo que en la función de GatorV yo comenté la siguiente sección, está casi al final:

Código PHP:
Ver original
  1. do {
  2.         // Eliminar etiquetas que realmente no vamos a usar
  3.         $old_data = $data;
  4.         $data = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data);
  5.     } while ($old_data !== $data);
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 18/07/2013, 11:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

perdona por volver atras pero resulta que con htmlentities no me esta guardando bien el valor en el campo oculto yo hice esto:

<input type='hidden' value='<?php echo htmlentities($variable_limpia);?>' />

ahora lo que me sucede si miro el codigo fuente parece estar bien pero si lo miro con firebug el value se desarma no se a que es debido y por eso me da error, el formulario al procesarlo utilizo ajax no se si tiene algo que ver, alguna idea?
saludos
  #14 (permalink)  
Antiguo 18/07/2013, 11:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

El value se desarma?
Creo que tienes que ser más específico, porque la verdad no entendí.

Porqué usas comillas simples para delimitar los atributos html?
Aunque es válido, yo prefiero a la antigüita, con comillas dobles, ejemplo: atributo="valor"

Sobre todo porque traemos los valores de base de datos y no sabemos cuando una comilla u otro caracter puede ocasionarnos problemas.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 18/07/2013, 12:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Gracias Trybi tendre en cuenta lo de las comillas dobles, cuando digo que se desarma el value me refiero que si miro el firebug sale algo asin:

<input type='hidden' contentido del texto alert('xss');value=mas codigo' />

esto es lo que sale cuando digo que se desarma el value, como lo puedo solucionar
  #16 (permalink)  
Antiguo 18/07/2013, 12:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Muestra tu código PHP donde obtienes el HTML resultante y cómo armas el campo oculto, porque esto de que pongas una sola línea no da pistas para saber qué es lo que está mal.
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 18/07/2013, 14:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

Triby en principio agradecerte el interes por ayudarme, se que solo muestro una linea pero esque el error esta en esa linea, ya se porque sucede esto pero no se como solucionarlo, sucede porque si un malintencionado intenta inserta algo asin en el campo del textarea enriquecido:



<script type='text'>alert('XSS');</script>texto normal este texto es <span style="color:red">rojo</span>este texto no tiene estilos


despues limpio la variable que recojo del textarea y la guardo asin:

<input type="hidden" value="<?php echo $variable_limpia;>" name="texto"/>


entonces creo conflictos de comillas tanto las simples como las dobles que usa tinyMCE para los estilos css, probe con addslashes pero me sigue creando conflicto.

Alguna ayuda?
saludos.
  #18 (permalink)  
Antiguo 18/07/2013, 15:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: alguien conoce htmLawed para que me ayude a configurlo

bueno parece que ya lo solucione ya que tenia conflicto no solo con comillas si no con > tambien, entonces una vez pasado los filtros utilice addslashes y despues htmlentities y parece que ya funciona.

Aunque volviendo a la funcion de GatorV sobre esta parte

do {
// Eliminar etiquetas que realmente no vamos a usar
Código PHP:
Ver original
  1. $old_data = $data;
  2.             $data = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data);
  3.         } while ($old_data !== $data);

como lo puedo hacer para que el htmLawed controle esto tambien? o como puedo hacer para que la funcion de GatorV deje pasar estiquetas html y estilos css?
Saludos.

Etiquetas: html
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 15:48.