El uso de HTML purificador para detener enlaces a propio sitio
-
18-09-2019 - |
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
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