Browse Source

Make referrer verification exceptions non-fatal

pull/2/head
Noah Petherbridge 5 years ago
parent
commit
bccfcff19d
2 changed files with 26 additions and 13 deletions
  1. +19
    -11
      rophako/model/tracking.py
  2. +7
    -2
      rophako/utils.py

+ 19
- 11
rophako/model/tracking.py View File

@@ -6,7 +6,8 @@ import time
import requests

import rophako.jsondb as JsonDB
from rophako.utils import remote_addr, pretty_time, server_name
from rophako.utils import (remote_addr, pretty_time, server_name,
handle_exception)

def track_visit(request, session):
"""Main logic to track and log visitor details."""
@@ -91,16 +92,23 @@ def log_referrer(request, link):

# See if the URL really links back to us.
hostname = server_name()
r = requests.get(link)
if hostname in r.text:
# Log it.
db = list()
if JsonDB.exists("traffic/referrers"):
# Don't cache the result -- the list can get huge!
db = JsonDB.get("traffic/referrers", cache=False)
db.append(link)
JsonDB.commit("traffic/referrers", db, cache=False)
return link
try:
r = requests.get(link,
timeout=5,
verify=False, # Don't do SSL verification
)
if hostname in r.text:
# Log it.
db = list()
if JsonDB.exists("traffic/referrers"):
# Don't cache the result -- the list can get huge!
db = JsonDB.get("traffic/referrers", cache=False)
db.append(link)
JsonDB.commit("traffic/referrers", db, cache=False)
return link
except Exception as e:
handle_exception(e)
return None

return None


+ 7
- 2
rophako/utils.py View File

@@ -214,7 +214,7 @@ def handle_exception(error):

username = "anonymous"
try:
if "username" in g.info["session"]:
if hasattr(g, "info") and "session" in g.info and "username" in g.info["session"]:
username = g.info["session"]["username"]
except:
pass
@@ -227,7 +227,12 @@ def handle_exception(error):
stacktrace = error + "\n\n" \
+ "==== Start Traceback ====\n" \
+ traceback.format_exc() \
+ "==== End Traceback ====\n"
+ "==== End Traceback ====\n\n" \
+ "Request Information\n" \
+ "-------------------\n" \
+ "Address: " + remote_addr() + "\n" \
+ "User Agent: " + request.user_agent.string + "\n" \
+ "Referrer: " + request.referrer

# Construct the subject and message
subject = "Internal Server Error on {} - {} - {}".format(

Loading…
Cancel
Save