Comment empêcher Shr de se connecter au réseau

8

Les versions récentes d'Emacs ont un très bon rendu pour HTML écrit entièrement en Elisp. Ce moteur de rendu (shr) peut être utilisé pour afficher des e-mails HTML, de la documentation, etc. Cependant, il semble que shr récupère des ressources distantes référencées dans des documents HTML (par exemple des images). Si le code HTML n'est pas fiable, comme dans le cas des spams, cela entraîne un certain nombre de problèmes de sécurité et de confidentialité.

Question: Comment est-il possible d'empêcher shr d'accéder aux ressources distantes lors du rendu HTML?

tmalsburg
la source
Je soupçonne que c'est plutôt quelque chose qui peut être ajusté url.eluniquement.
wasamasa
2
@wasamasa Vous voulez dire que je pourrais temporairement url.elrefuser l'accès aux ressources distantes? On dirait que cela pourrait briser les choses. Je pense que shr devrait être capable de faire la distinction entre les ressources locales et distantes et devrait avoir un mode dans lequel il n'essaye même pas de récupérer des éléments distants.
tmalsburg

Réponses:

6

shr.el a un (defvar shr-inhibit-images nil)et 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))

Il semble que (setq shr-inhibit-images t)j'arrête les requêtes Web lorsque je consulte les e-mails HTML.

Notez qu'il désactive complètement l'affichage de l'image eww. C'est bien pour moi mais ça pourrait ne pas marcher pour vous. Vous pouvez bien sûr ajouter une eww-modeliaison de touches qui basculerait cette + recharger une page donnée lors de l'activation des images.

mankoff
la source
Je vous remercie! Je ne suis pas sûr que ce soit complètement étanche, mais il semble gérer la plupart des cas.
tmalsburg
2
Ma solution consiste à me lier temporairement shr-inhibit-imagesau trendu des e-mails HTML. De cette façon, eww ne devrait pas être affecté.
tmalsburg
Pouvez-vous fournir le code pour cela?
mankoff
1
Cette discussion se poursuit donc sur la liste mu4e en même temps. Il a été souligné que les images ci-dessus inhibent les images, mais shr peut toujours accéder au Web pour les cookies, javascript, etc.
mankoff
Mu4e a une fonction pour rendre les emails HTML. Ça s'appelle mu4e-shr2text. Ma version modifiée avec inhibition des images peut être trouvée ici: github.com/tmalsburg/mu/blob/master/mu4e/mu4e-contrib.el#L44 Je doute de cette déclaration sur les cookies et javascript. Les cookies ne sont pas récupérés à l'aide de connexions distinctes et eww / shr ne prend pas en charge le javascript à ma connaissance.
tmalsburg