Como impedir que o shr faça conexões de rede

8

Versões recentes do Emacs têm um renderizador realmente bom para HTML escrito inteiramente no Elisp. Este renderizador (shr) pode ser usado para exibir emails em HTML, documentação etc. No entanto, parece que o shr recupera recursos remotos referenciados em documentos HTML (por exemplo, imagens). Se o HTML não for confiável, como no caso de e-mails com spam, isso leva a várias preocupações de segurança e privacidade.

Pergunta: Como é possível impedir que o shr acesse recursos remotos ao renderizar HTML?

Tmalsburg
fonte
Eu suspeito que isso é algo que só pode ser ajustado url.el.
wasamasa
2
@wasamasa Você quer dizer que posso deixar temporariamente url.elrecusar o acesso a recursos remotos? Parece que isso pode quebrar as coisas. Eu acho que o shr deve ser capaz de distinguir entre recursos locais e remotos e deve ter um modo no qual nem tente recuperar coisas remotas.
tmalsburg

Respostas:

6

shr.el tem um (defvar shr-inhibit-images nil)e um

(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)interrompe as solicitações da web quando visualizo emails em HTML.

Observe que desativa ewwtotalmente a exibição da imagem . Isso é bom para mim, mas pode não funcionar para você. Obviamente, você pode adicionar uma eww-modecombinação de teclas que alterne isso + recarrega uma determinada página ao ativar as imagens.

mankoff
fonte
Obrigado! Não tenho certeza se isso é completamente à prova d'água, mas parece lidar com a maioria dos casos.
tmalsburg
2
Minha solução é vincular shr-inhibit-images- se temporariamente ao tprocessar emails em HTML. Dessa forma, eww não deve ser afetado.
tmalsburg
Você pode fornecer o código para isso?
Mankoff
1
Portanto, essa discussão continua na lista mu4e ao mesmo tempo. Assinalou-se as imagens inibe acima, mas SHR ainda pode acessar a web para cookies, javascript, etc
Mankoff
O Mu4e possui uma função para renderizar emails em HTML. É chamado mu4e-shr2text. Minha versão modificada com inibição de imagens pode ser encontrada aqui: github.com/tmalsburg/mu/blob/master/mu4e/mu4e-contrib.el#L44 Duvido dessa afirmação sobre cookies e javascript. Os cookies não são recuperados usando conexões separadas e o eww / shr não tem suporte para javascript, que eu saiba.
tmalsburg