mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-04 03:13:24 +00:00
Document 'trusted-content
* doc/emacs/misc.texi (Host Security): Document 'trusted-content'. * lisp/files.el (trusted-content): Doc fix. * etc/NEWS: Mark its entry as "documented".
This commit is contained in:
parent
c6ce11b2a4
commit
8a0c9c234f
3 changed files with 35 additions and 1 deletions
|
@ -277,6 +277,39 @@ trusted and the default checking for these variables is irritating,
|
||||||
you can set @code{enable-local-variables} to @code{:all}. @xref{Safe
|
you can set @code{enable-local-variables} to @code{:all}. @xref{Safe
|
||||||
File Variables}.
|
File Variables}.
|
||||||
|
|
||||||
|
@cindex trusted files and directories
|
||||||
|
Loading a file of Emacs Lisp code with @code{load-file} or
|
||||||
|
@code{load-library} (@pxref{Lisp Libraries}) can execute some of the
|
||||||
|
Lisp code in the file being loaded, so you should only load Lisp files
|
||||||
|
whose source you trust. However, some Emacs features can in certain
|
||||||
|
situations execute Lisp code even without your explicit command or
|
||||||
|
request. For example, Flymake, the on-the-fly syntax checker for Emacs
|
||||||
|
(@pxref{Top,,, flymake, GNU Flymake}), if it is enabled, can
|
||||||
|
automatically execute some of the code in a Lisp file you visit as part
|
||||||
|
of its syntax-checking job. Similarly, some completion commands
|
||||||
|
(@pxref{Completion}) in buffers visiting Lisp files sometimes need to
|
||||||
|
expand Lisp macros for best results. In these cases, just visiting a
|
||||||
|
Lisp file and performing some editing in it could trigger execution of
|
||||||
|
Lisp code. If the visited file came from an untrusted source, it could
|
||||||
|
include dangerous or even malicious code that Emacs would execute in
|
||||||
|
those situations.
|
||||||
|
|
||||||
|
To protect against this, Emacs disables execution of Lisp code by
|
||||||
|
Flymake, completion, and some other features, unless the visited file is
|
||||||
|
@dfn{trusted}. It is up to you to specify which files on your system
|
||||||
|
should be trusted, by customizing the user option
|
||||||
|
@code{trusted-content}.
|
||||||
|
|
||||||
|
@defopt trusted-content
|
||||||
|
The value of this option is @code{nil} by default, which means no file
|
||||||
|
is trusted. You can customize the variable to be a list of one or more
|
||||||
|
names of trusted files and directories. A file name that ends in a
|
||||||
|
slash @file{/} is interpreted as a directory, which means all its files
|
||||||
|
and subdirectories are also trusted. A special value @code{:all} means
|
||||||
|
@emph{all} the files and directories on your system should be trusted;
|
||||||
|
@strong{this is not recommended}, as it opens a gaping security hole.
|
||||||
|
@end defopt
|
||||||
|
|
||||||
@xref{Security Considerations,,, elisp, The Emacs Lisp Reference
|
@xref{Security Considerations,,, elisp, The Emacs Lisp Reference
|
||||||
Manual}, for more information about security considerations when using
|
Manual}, for more information about security considerations when using
|
||||||
Emacs as part of a larger application.
|
Emacs as part of a larger application.
|
||||||
|
|
1
etc/NEWS
1
etc/NEWS
|
@ -199,6 +199,7 @@ see the variable 'url-request-extra-headers'.
|
||||||
|
|
||||||
* Changes in Emacs 30.1
|
* Changes in Emacs 30.1
|
||||||
|
|
||||||
|
+++
|
||||||
** New user option 'trusted-content' to allow potentially dangerous features.
|
** New user option 'trusted-content' to allow potentially dangerous features.
|
||||||
This variable lists those files and directories whose content Emacs should
|
This variable lists those files and directories whose content Emacs should
|
||||||
consider as sufficiently trusted to run any part of the code contained
|
consider as sufficiently trusted to run any part of the code contained
|
||||||
|
|
|
@ -725,7 +725,7 @@ Each element of the list should be a string:
|
||||||
- If it ends in \"/\", it is considered as a directory name and means that
|
- If it ends in \"/\", it is considered as a directory name and means that
|
||||||
Emacs should trust all the files whose name has this directory as a prefix.
|
Emacs should trust all the files whose name has this directory as a prefix.
|
||||||
- else it is considered as a file name.
|
- else it is considered as a file name.
|
||||||
Use abbreviated file names. For example, an entry \"~/mycode\" means
|
Use abbreviated file names. For example, an entry \"~/mycode/\" means
|
||||||
that Emacs will trust all the files in your directory \"mycode\".
|
that Emacs will trust all the files in your directory \"mycode\".
|
||||||
This variable can also be set to `:all', in which case Emacs will trust
|
This variable can also be set to `:all', in which case Emacs will trust
|
||||||
all files, which opens a gaping security hole."
|
all files, which opens a gaping security hole."
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue