*Emacs a viry (Was: Re: Pozor na virus I love you)
Pavel Janík ml.
Pavel.Janik na inet.cz
Pátek Květen 5 07:39:48 CEST 2000
From: garabik na melkor.dnp.fmph.uniba.sk.spam (Radovan Garabik)
Date: 4 May 2000 18:56:09 GMT
Zdravím,
> nepocul som niekde v pozadi slovo emacs? :-)
>
> cudujem sa ze nikto este nenapisal makrovirus v emacs-lispe... (pravda,
> nemohol by sa tak nednoducho sirit, pokial by obet prislusny skript
> nespustila)
já také - opravdu není problém to napsat. Nevím jak ostatní poštovní (hmm,
jsme v Emacsu, takže spíše další message laboratories :-) klienti, ale Gnus,
když uvidí attachment s MIME typem application/emacs-lisp, tak se zachovají
tak, jak mají napsáno buď ve zdrojových textech nebo v uživatelově
konfiguraci. Standardně (ve zdrojácích) je:
mailcap.el:
...
("emacs-lisp"
(viewer . mailcap-maybe-eval)
(type . "application/emacs-lisp"))
...
Pokud je tedy typ application/emacs-lisp, spustí se funkce mailcap-maybe-eval,
která obsahuje:
(defun mailcap-maybe-eval ()
"Maybe evaluate a buffer of emacs lisp code."
(if (yes-or-no-p "This is emacs-lisp code, evaluate it? ")
(eval-buffer (current-buffer))
(emacs-lisp-mode)))
Tento kód by se do bezzávorkových jazyků (např. C) dal přepsat asi takto:
/* Opravdu mám "spustit" (v LISPu vyhodnotit, evaluate) buffer? */
if (uživatel odpověděl `yes')
vyhodnoť buffer;
else
zapni elisp-mod (obarvi syntaxi apod).
Čili prostředí je nádherně připraveno pro stejné rozšíření virů jako ve
Windows (čtěte: pokud je uživatel idiot, ani Emacs ho nezachrání).
Samozřejmě, že si uživatel může nastavit automatické spouštění Emacs Lispu,
stačí předefinovat tuto funkci:
(defun mailcap-maybe-eval ()
"Really evaluate a buffer of emacs lisp code."
(eval-buffer (current-buffer)))
A je to. Ale DEFAULT je bezpečná hodnota. To je podstatný rozdíl!
Existuje ale také další rozdíl: ... ale raději ne, protože bych urazil
uživatele Outlooku a podobných nesmyslů, kvůli kterým musíme i v Televizních
novinách poslouchat takové kraviny o virech. Ach jo. Kdo chce kam, pomozme mu
tam...
--
Pavel Janík ml.
Pavel.Janik na inet.cz
Další informace o konferenci Linux