Project

General

Profile

Feature #3909

HTMLPurifier filter in Wiki (before save)

Added by Juan Carlos Raña Trabado almost 8 years ago. Updated over 3 years ago.

Status:
Needs testing
Priority:
Normal
Category:
-
Target version:
Start date:
21/09/2011
Due date:
% Done:

60%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Cuando se realiza un trabajo intensivo y rudo en el wiki con decenas de versiones, etiquetas de copiado y pegado, etc., etc., puede haber incoherencias en las etiquetas Html del Wiki. Por ej., es frecuente que los usuarios copien textos de Internet que incluso estando en correcto HTML les pueden dar resultados no deseados. Esto es debido a que aunque creen que han copiado todo correctamente (pues ven todo el texto que han copiado) a veces no posicionan el ratón en el lugar adecuado al hacer copy, con lo que algunas etiquetas html de entrada o de cierre no son copiadas. La incorporación de este filtro tiene una vocación de usabilidad, no de seguridad, y permitirá que estas etiquetas sean las correctas antes de guardarse en la base de datos. Es decir que no habrá que recurrir al filtro cada vez que se vea la página sino sólo cuando se crea o se edita, lo cual bajará ostensiblemente la carga en el servidor.

History

#1

Updated by Juan Carlos Raña Trabado almost 8 years ago

  • Status changed from New to Bug resolved
  • % Done changed from 0 to 80
#2

Updated by Juan Carlos Raña Trabado over 7 years ago

  • Status changed from Bug resolved to Needs testing

I saw problems whit some multimedia. I reopen this task

#3

Updated by Juan Carlos Raña Trabado over 7 years ago

  • % Done changed from 80 to 70
#6

Updated by Juan Carlos Raña Trabado over 7 years ago

Por ahora la funcionalidad debe quedar desactivada en el administrador hasta que no se le incorpore la habilidad de no identificar como etiquetas no válidas algunas relacionadas con insertar imágenes, flash, algunos objetos, algunas de javascript, etc., que ahora directamente elimina cuando se activa.

#8

Updated by Juan Carlos Raña Trabado over 7 years ago

any idea else ?

#9

Updated by Yannick Warnier over 7 years ago

I think the right thing to do would be to use a library that filters the tags. Something like http://www.php.net/manual/en/tidy.cleanrepair.php
Apparently this library is bundled into PHP5+, so we are not requiring an additional external library.

This would probably let you fix the "forgetting to close some tags" problem. Not sure if you have other problems left, haven't checked all your links so far, but disabling htmlpurifier is not an option (unless it is replaced by another filtering mechanism).
A possibility would be to let the teacher choose (in the course settings) whether he'd like the "complete but insecure" mode or the "filtered but secure" mode, but I'm not sure it is a good idea to let the teacher decide that (it should be for the admin to decide)

#10

Updated by Juan Carlos Raña Trabado over 7 years ago

La biblioteca tidy no está habilitada por defecto en php, lo cual exigiría al administrador cambiar esto (si el usuario de Chamilo no tiene acceso a la administración de php puede ser un problema añadido). De todas formas he hecho algunas pruebas para ver su comportamiento y tiene un comportamiento bastante parecido a htmlpurifier (no he evaluado rendimiento) de manera que no siempre actúa sobre las etiquetas de la forma que esperaríamos, en especial cuando insertamos imágenes, objetos, etc., planteándose problemas similares a hmlpurifier

Sobre la seguridad, creo que no hay un descenso de la misma al tener htmlpurifier desactivado aquí para esto ya que el uso de htmlpurifier que experimentalmente se hace aquí es independiente del uso general para mantener la seguridad relativa a los xss.

En suma se trata de filtrar las etiquetas que se escriben en el cuerpo del editor (si fuera tan sólo en un campo de título o similar la cuestión sería más fácil), dejando a su vez libre la inserción de etiquetas que por varias razones pudieran borrarse y atendiendo a cuestiones de codificación y rendimiento. Esto hace el tema más complejo, así que hay que realizar bastantes más pruebas, por lo que quizá sea mejor dejar esta tarea para más adelante.

#11

Updated by Yannick Warnier about 7 years ago

  • Target version changed from 1.9 Stable to 1.9 Beta
#12

Updated by Yannick Warnier about 7 years ago

Que hago con esta, Juan Carlos? La paso a 1.10 y la seguimos viendo?

#13

Updated by Juan Carlos Raña Trabado about 7 years ago

  • Target version changed from 1.9 Beta to 2.0
#14

Updated by Yannick Warnier over 3 years ago

  • Target version changed from 2.0 to 3.0

Also available in: Atom PDF