diff options
author | Mark Sapiro <mark@msapiro.net> | 2015-06-23 12:53:50 -0700 |
---|---|---|
committer | Mark Sapiro <mark@msapiro.net> | 2015-06-23 12:53:50 -0700 |
commit | 5c01d482cc37706251892ea1b620b221da2d2ca4 (patch) | |
tree | 7138ce95a77309550e3657e8e9656f55422a99ab /Mailman/Cgi/options.py | |
parent | ab19a1505dd93eca5d9ca6792740c9eb56302cfe (diff) | |
parent | 28f5f0ce0be5529598124bbe5e0d72b0fd605e69 (diff) | |
download | mailman2-5c01d482cc37706251892ea1b620b221da2d2ca4.tar.gz mailman2-5c01d482cc37706251892ea1b620b221da2d2ca4.tar.xz mailman2-5c01d482cc37706251892ea1b620b221da2d2ca4.zip |
Improved identification of remote clients coming via a proxy server.
Diffstat (limited to 'Mailman/Cgi/options.py')
-rw-r--r-- | Mailman/Cgi/options.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py index 74f186d7..a094047e 100644 --- a/Mailman/Cgi/options.py +++ b/Mailman/Cgi/options.py @@ -193,7 +193,10 @@ def main(): mlist.HoldUnsubscription(user) doc.addError(msga, tag='') else: - ip = os.environ.get('REMOTE_ADDR') + ip = os.environ.get('HTTP_FORWARDED_FOR', + os.environ.get('HTTP_X_FORWARDED_FOR', + os.environ.get('REMOTE_ADDR', + 'unidentified origin'))) mlist.ConfirmUnsubscription(user, userlang, remote=ip) doc.addError(msgc, tag='') mlist.Save() @@ -264,9 +267,13 @@ def main(): # So as not to allow membership leakage, prompt for the email # address and the password here. if mlist.private_roster <> 0: + remote = os.environ.get('HTTP_FORWARDED_FOR', + os.environ.get('HTTP_X_FORWARDED_FOR', + os.environ.get('REMOTE_ADDR', + 'unidentified origin'))) syslog('mischief', - 'Login failure with private rosters: %s', - user) + 'Login failure with private rosters: %s from %s', + user, remote) user = None # give an HTTP 401 for authentication failure print 'Status: 401 Unauthorized' |