*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