]> git.eshelyaron.com Git - emacs.git/commitdiff
Never send user email address in HTTP requests
authorStefan Kangas <stefankangas@gmail.com>
Sun, 17 Dec 2023 08:45:05 +0000 (09:45 +0100)
committerStefan Kangas <stefankangas@gmail.com>
Sun, 17 Dec 2023 09:00:22 +0000 (10:00 +0100)
It used to be possible to customize 'url-privacy-level' so that the
user's email address was sent along in HTTP requests.  Since
'url-privacy-level' is also a blocklist, rather than an allowlist,
this meant that a mere misconfiguration of Emacs risked exposing the
user's email address.  This is a serious privacy risk, and it is thus
better if we remove this dangerous feature altogether.

* lisp/url/url-http.el (url-http-create-request): Never send the
user email address.
* lisp/url/url-vars.el (url-personal-mail-address): Make obsolete.
* lisp/url/url-privacy.el (url-setup-privacy-info): Don't set
above obsolete variable.
* doc/misc/url.texi (Customization):
* lisp/url/url-vars.el (url-privacy-level): Update documentation
to reflect the above changes.

doc/misc/url.texi
etc/NEWS
lisp/url/url-http.el
lisp/url/url-privacy.el
lisp/url/url-vars.el

index 6517f8583249044161a3afbaca64c4e1eae25543..3a447a20559b7e271b886563a24e7a72ebaf0ddb 100644 (file)
@@ -1231,8 +1231,6 @@ the @file{*URL-DEBUG*} buffer.
 A number means log all messages and show them with @code{message}.
 It may also be a list of the types of messages to be logged.
 @end defopt
-@defopt url-personal-mail-address
-@end defopt
 @defopt url-privacy-level
 @end defopt
 @defopt url-lastloc-privacy-level
index 491ade0c069428e2804b73fd515af9d5c6648bf3..918c12b91d231bd596ec954aab3d621aeaa26ea9 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1093,6 +1093,14 @@ Highlighting Tests" node in the ERT manual.
 
 ** URL
 
++++
+*** URL now never sends user email addresses in HTTP requests.
+Emacs never sent email addresses by default, but it used to be
+possible to customize 'url-privacy-level' so that the users email
+address was sent along in HTTP requests.  This feature has now been
+removed, as it was considered more risky than useful.  The user option
+'url-personal-mail-address' is now also obsolete.
+
 +++
 *** 'url-gateway-broken-resolution' is now obsolete.
 This option was intended for use on SunOS 4.x and Ultrix systems,
index ada6341ee73b49fe456014d89262379d14d78984..947c6517ed1b93f2dcb8f70fdfeef60666d76cf0 100644 (file)
@@ -358,10 +358,6 @@ Use `url-http-referer' as the Referer-header (subject to `url-privacy-level')."
                   (url-port url-http-target-url))
                (format "Host: %s\r\n"
                        (url-http--encode-string (puny-encode-domain host))))
-             ;; Who its from
-             (if url-personal-mail-address
-                 (concat
-                  "From: " url-personal-mail-address "\r\n"))
              ;; Encodings we understand
              (if (or url-mime-encoding-string
                     ;; MS-Windows loads zlib dynamically, so recheck
index 2be77b33035b27112e382b9639d20cb820879c33..be4b063d18f1ec0f141dd23d6efbab6b5d192d8f 100644 (file)
            ('tty "TTY")
            (_ nil)))))
 
-  (setq url-personal-mail-address (or url-personal-mail-address
-                                     user-mail-address
-                                     (format "%s@%s"  (user-real-login-name)
-                                             (system-name))))
-
-  (if (or (memq url-privacy-level '(paranoid high))
-         (and (listp url-privacy-level)
-              (memq 'email url-privacy-level)))
-      (setq url-personal-mail-address nil))
-
   (setq url-os-type
        (cond
         ((or (eq url-privacy-level 'paranoid)
index 630de7f4e432ddbe38c6b35235788636ff864b80..6d7d0d3c94c5fc343336bdfc41611e25f7542cdb 100644 (file)
@@ -90,6 +90,7 @@ This is what is sent to HTTP servers as the FROM field in an HTTP
 request."
   :type '(choice (const :tag "Unspecified" nil) string)
   :group 'url)
+(make-obsolete-variable 'url-personal-mail-address nil "30.1")
 
 (defcustom url-directory-index-file "index.html"
   "The filename to look for when indexing a directory.
@@ -113,18 +114,22 @@ paranoid -- don't send anything
 
 If a list, this should be a list of symbols of what NOT to send.
 Valid symbols are:
-email    -- the email address
+email    -- the email address (in Emacs 29 or older)
 os       -- the operating system info
 emacs    -- the version of Emacs
 lastloc  -- the last location (see also `url-lastloc-privacy-level')
 agent    -- do not send the User-Agent string
 cookies  -- never accept HTTP cookies
 
+Emacs 30 and newer never includes the email address in the
+User-Agent string.  If you expect to use older versions of Emacs,
+it is recommended to always customize this list to include `email'.
+
 Samples:
 
  (setq url-privacy-level \\='high)
  (setq url-privacy-level \\='(email lastloc))    ;; equivalent to \\='high
- (setq url-privacy-level \\='(os))
+ (setq url-privacy-level \\='(email lastloc os emacs))
 
 ::NOTE::
 This variable controls several other variables and is _NOT_ automatically