[tor-commits] [gettor/master] Clean up logs a bit (remove logging of sensitive data)

kaner at torproject.org kaner at torproject.org
Sat Sep 3 12:30:08 UTC 2011


commit 61f315535165e37ac49f9a415d961b65540d8c20
Author: Christian Fromme <kaner at strace.org>
Date:   Tue Aug 23 21:19:00 2011 +0200

    Clean up logs a bit (remove logging of sensitive data)
---
 lib/gettor/blacklist.py |    4 +---
 lib/gettor/filters.py   |    1 -
 lib/gettor/requests.py  |    1 +
 lib/gettor/responses.py |   21 ++++++++++++---------
 lib/gettor/utils.py     |    4 ++++
 5 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/lib/gettor/blacklist.py b/lib/gettor/blacklist.py
index cbf2c47..83cf188 100644
--- a/lib/gettor/blacklist.py
+++ b/lib/gettor/blacklist.py
@@ -2,7 +2,6 @@
 #                            Christian Fromme <kaner at strace.org>
 #  This is Free Software. See LICENSE for license information.
 
-import hashlib
 import os
 import re
 import glob
@@ -109,5 +108,4 @@ class BWList:
         """Return hash for a given emailaddress
         """
         emailonly = gettor.utils.stripEmail(address)
-        return str(hashlib.sha1(emailonly).hexdigest())
-
+        return gettor.utils.getHash(emailonly)
diff --git a/lib/gettor/filters.py b/lib/gettor/filters.py
index 4deacb0..f2f0534 100644
--- a/lib/gettor/filters.py
+++ b/lib/gettor/filters.py
@@ -32,7 +32,6 @@ def checkAddressHack(userAddress):
        XXX: This should merge somehow with the GetTor blacklisting
             mechanism at some point
     """
-    logging.debug("Checking user address %s.." % userAddress)
     if re.compile(".*@.*torproject.org.*").match(userAddress):
         return False
         
diff --git a/lib/gettor/requests.py b/lib/gettor/requests.py
index 9cadef5..5b9bb3b 100644
--- a/lib/gettor/requests.py
+++ b/lib/gettor/requests.py
@@ -22,6 +22,7 @@ class requestMail:
         self.config = config
         self.request = {}
         self.request['user'] = self.parsedMessage["Return-Path"]
+        self.request['hashed_user'] = gettor.utils.getHash(self.request['user'])
         self.request['ouraddr'] = self.getRealTo(self.parsedMessage["to"])
         self.request['locale'] = self.getLocaleInTo(self.request['ouraddr'])
         self.request['package'] = None
diff --git a/lib/gettor/responses.py b/lib/gettor/responses.py
index 47bb7d3..b0dd643 100644
--- a/lib/gettor/responses.py
+++ b/lib/gettor/responses.py
@@ -5,6 +5,7 @@
 import os
 import re
 import sys
+import copy
 import smtplib
 import gettext
 import logging
@@ -112,8 +113,10 @@ class Response:
         self.config = config
         self.reqInfo = reqInfo
 
-        # Dump info
-        logging.info(str(self.reqInfo))
+        # Delete sensitive data before dumping info
+        reqInfoClean = copy.deepcopy(self.reqInfo)
+        del reqInfoClean['user']
+        logging.info(str(reqInfoClean))
 
         # Initialize locale subsystem
         self.t = i18n.getLang(self.reqInfo['locale'], config)
@@ -165,7 +168,7 @@ class Response:
         self.bList.createSublist(fname)
         if self.bList.lookupListEntry(self.reqInfo['user'], fname):
             logging.info("User %s is blacklisted for %s" \
-                                   % (self.reqInfo['user'], fname))
+                                   % (self.reqInfo['hashed_user'], fname))
             return True
         else:
             self.bList.createListEntry(self.reqInfo['user'], fname)
@@ -185,7 +188,7 @@ class Response:
         if self.isBlacklistedForMessageType("sendPackage"):
             # Don't send anything
             return False
-        logging.info("Sending out %s to %s." % (pack, to))
+        logging.info("Sending out %s." % (pack))
         f = os.path.join(self.config.BASEDIR, "packages", pack + ".z")
         txt = getPackageMsg(self.t)
         msg = self.makeMsg(txt, to, fileName=f)
@@ -205,7 +208,7 @@ class Response:
         pack = self.reqInfo['package']
         fwd = self.reqInfo['forward']
         to = self.reqInfo['user']
-        logging.info("Sending out %s to %s."  % (pack, fwd))
+        logging.info("Sending out %s."  % (pack))
         f = os.path.join(self.config.BASEDIR, "packages", pack + ".z")
         text = getPackageMsg(self.t)
         msg = self.makeMsg(text, fwd, fileName=f)
@@ -282,7 +285,7 @@ class Response:
         if self.isBlacklistedForMessageType("sendDelayAlert"):
             # Don't send anything
             return False
-        logging.info("Sending delay alert to %s" % self.reqInfo['user'])
+        logging.info("Sending delay alert to %s" % self.reqInfo['hashed_user'])
         return self.sendTextEmail(getDelayAlertMsg(self.t))
             
     def sendHelp(self):
@@ -292,7 +295,7 @@ class Response:
         if self.isBlacklistedForMessageType("sendHelp"):
             # Don't send anything
             return False
-        logging.info("Sending out help message to %s" % self.reqInfo['user'])
+        logging.info("Sending out help message to %s" % self.reqInfo['hashed_user'])
         return self.sendTextEmail(getPackageHelpMsg(self.t))
 
     def sendPackageHelp(self):
@@ -302,7 +305,7 @@ class Response:
         if self.isBlacklistedForMessageType("sendPackageHelp"):
             # Don't send anything
             return False
-        logging.info("Sending package help to %s" % self.reqInfo['user'])
+        logging.info("Sending package help to %s" % self.reqInfo['hashed_user'])
         return self.sendTextEmail(i18n.MULTILANGHELP)
 
     def sendTextEmail(self, text):
@@ -313,7 +316,7 @@ class Response:
             status = self.sendEmail(self.reqInfo['user'], message)
         except:
             logging.error("Could not send message to user %s" \
-                                                % self.reqInfo['user'])
+                                                % self.reqInfo['hashed_user'])
             status = False
 
         logging.debug("Send status: %s" % status)
diff --git a/lib/gettor/utils.py b/lib/gettor/utils.py
index 0a51760..f29ddf6 100644
--- a/lib/gettor/utils.py
+++ b/lib/gettor/utils.py
@@ -285,3 +285,7 @@ def stripHTMLTags(string):
     """
     return re.sub(r'<[^>]*?>', '', string)
 
+def getHash(string):
+    """Return hash of given string
+    """
+    return str(hashlib.sha1(string).hexdigest())





More information about the tor-commits mailing list