Pregunta

He utilizado HTML purificador de para eliminar a cualquier cosa sospechosa que viene de mi editor WYSIWYG frente pública. El HTML entrante también se visualiza en la parte pública de la página web.

he permitido enlaces, y también Linkify automáticamente URLs en texto sin formato (usando el purificador).

¿Hay una manera de permitir que los enlaces externos, pero los enlaces a la prohibición del mismo dominio? Por ejemplo mi dominio es www.example.com

http://www.google.com se vinculará.

http://www.example.com/logout/ no se vinculará.

Busco a minimizar cualquier interferencia de usuarios maliciosos. ¿Debo hacer que mi enlace de desconexión una acción de formulario con un par de claves de POST / valor para evitar que esto suceda?

Gracias

¿Fue útil?

Solución

Su nombre de usuario / formulario debe estar SIEMPRE POST-solamente.

No se preocupe por un valor de verificación, pero este es un problema de seguridad muy importante - las operaciones que cambian el estado del servidor web debe ser solicitudes POST. Usted nunca debe permitir http://example.com/object?action=delete , o cualquier variante de la misma. PHP anima a las malas prácticas en esta materia, pero siempre se debe utilizar uno o el otro, y nunca permita tanto.

Si los usuarios pueden escribir formas en su editor WYSIWYG, usted tiene problemas mucho más grandes que esto.

Para responder a su pregunta original, para desactivar los enlaces internos, el uso URI.HostBlacklist y asegúrese de establecer URI.MakeAbsolute:

http://htmlpurifier.org/live/configdoc/plain.html # URI.HostBlacklist

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top