Cómo evitar que shr realice conexiones de red

8

Las versiones recientes de Emacs tienen un procesador muy bueno para HTML escrito completamente en Elisp. Este procesador (shr) se puede usar para mostrar correos electrónicos HTML, documentación, etc. Sin embargo, parece que shr recupera recursos remotos a los que se hace referencia en documentos HTML (por ejemplo, imágenes). Si el HTML no es confiable, como en el caso de los correos electrónicos no deseados, esto genera una serie de problemas de seguridad y privacidad.

Pregunta: ¿Cómo es posible evitar que shr acceda a recursos remotos cuando se procesa HTML?

Tmalsburg
fuente
Sospecho que eso es algo que solo se puede ajustar url.el.
wasamasa
2
@wasamasa ¿Quiere decir que podría dejar temporalmente url.eldenegar el acceso a recursos remotos? Eso suena como si pudiera romper cosas en shr. Creo que shr debería poder distinguir entre recursos locales y remotos y debería tener un modo en el que ni siquiera intente recuperar cosas remotas.
Tmalsburg

Respuestas:

6

shr.el tiene un (defvar shr-inhibit-images nil)y un

(defcustom shr-blocked-images nil
  "Images that have URLs matching this regexp will be blocked."
  :version "24.1"
  :group 'shr
  :type '(choice (const nil) regexp))

Parece que (setq shr-inhibit-images t)detiene las solicitudes web cuando veo correos electrónicos HTML.

Tenga en cuenta que apaga la visualización de imágenes por ewwcompleto. Eso está bien para mí, pero podría no funcionar para ti. Por supuesto, puede agregar una eww-modecombinación de teclas que alternaría esto + volvería a cargar una página determinada al encender las imágenes.

mankoff
fuente
¡Gracias! No estoy seguro de si esto es completamente hermético, pero parece manejar la mayoría de los casos.
Tmalsburg
2
Mi solución es unirse temporalmente shr-inhibit-imagesa tal representar mensajes de correo electrónico HTML. De esta manera, eww no debería verse afectado.
Tmalsburg
¿Puedes proporcionar el código para esto?
mankoff
1
Entonces esta discusión continúa en la lista de mu4e al mismo tiempo. Se señaló que lo anterior inhibe las imágenes, pero shr aún puede acceder a la web para cookies, javascript, etc.
mankoff
Mu4e tiene una función para representar correos electrónicos HTML. Se llama mu4e-shr2text. Mi versión modificada con inhibición de imágenes se puede encontrar aquí: github.com/tmalsburg/mu/blob/master/mu4e/mu4e-contrib.el#L44 Dudo esa declaración sobre cookies y javascript. Las cookies no se recuperan usando conexiones separadas y eww / shr no tiene soporte para javascript que yo sepa.
Tmalsburg