From db48de8597897e5024f8e9ed5acb1a8f40748169 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 25 Jun 2020 16:27:35 +0200 Subject: Block infohash spammers from tracker --- server/lib/redis.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'server/lib/redis.ts') diff --git a/server/lib/redis.ts b/server/lib/redis.ts index b4cd6f8e7..5313c4685 100644 --- a/server/lib/redis.ts +++ b/server/lib/redis.ts @@ -8,7 +8,8 @@ import { USER_PASSWORD_RESET_LIFETIME, USER_PASSWORD_CREATE_LIFETIME, VIDEO_VIEW_LIFETIME, - WEBSERVER + WEBSERVER, + TRACKER_RATE_LIMITS } from '../initializers/constants' import { CONFIG } from '../initializers/config' @@ -121,6 +122,16 @@ class Redis { return this.exists(this.generateViewKey(ip, videoUUID)) } + /* ************ Tracker IP block ************ */ + + setTrackerBlockIP (ip: string) { + return this.setValue(this.generateTrackerBlockIPKey(ip), '1', TRACKER_RATE_LIMITS.BLOCK_IP_LIFETIME) + } + + async doesTrackerBlockIPExist (ip: string) { + return this.exists(this.generateTrackerBlockIPKey(ip)) + } + /* ************ API cache ************ */ async getCachedRoute (req: express.Request) { @@ -213,6 +224,10 @@ class Redis { return `views-${videoUUID}-${ip}` } + private generateTrackerBlockIPKey (ip: string) { + return `tracker-block-ip-${ip}` + } + private generateContactFormKey (ip: string) { return 'contact-form-' + ip } -- cgit v1.2.3