Hash player IP addresses in sha3_512 before storage

This commit is contained in:
Ben
2020-02-14 21:45:21 +00:00
parent f2924d9a54
commit 54cbb7c203
3 changed files with 8 additions and 4 deletions

View File

@@ -156,7 +156,7 @@ class Login(db.Model):
id = db.Column(db.Integer, primary_key=True, server_default=db.text("nextval('\"login_id_seq\"'::regclass)"))
penguin_id = db.Column(db.ForeignKey('penguin.id', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
date = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
ip_address = db.Column(db.CHAR(255), nullable=False)
ip_hash = db.Column(db.CHAR(255), nullable=False)
minutes_played = db.Column(db.Integer, nullable=False, server_default=db.text("0"))

View File

@@ -9,6 +9,7 @@ from houdini.constants import ClientType, StatusField
import random
import time
import pytz
import hashlib
from datetime import date, datetime
@@ -139,9 +140,12 @@ async def handle_disconnect_room(p):
await p.room.remove_penguin(p)
minutes_played = (datetime.now() - p.login_timestamp).total_seconds() / 60.0
ip = p.peer_name[0] + p.server.config.auth_key
hashed_ip = hashlib.sha3_512(ip.encode()).hexdigest()
await Login.create(penguin_id=p.id,
date=p.login_timestamp,
ip_address=p.peer_name[0],
ip_hash=hashed_ip,
minutes_played=minutes_played)
await p.update(minutes_played=p.minutes_played + minutes_played).apply()