diff --git a/daemon_get.py b/daemon_get.py index 4b1049a16..0cba9ae0d 100644 --- a/daemon_get.py +++ b/daemon_get.py @@ -89,6 +89,7 @@ from httpcodes import http_304 from httpcodes import http_400 from httpcodes import http_503 from httpcodes import write2 +from flags import is_corporate from flags import is_image_file from flags import is_artist from flags import is_blog_post @@ -112,7 +113,6 @@ from utils import convert_domains from utils import get_nickname_from_actor from utils import get_json_content_from_accept from utils import check_bad_path -from utils import corp_servers from utils import decoded_host from utils import detect_mitm from person import get_person_notes_endpoint @@ -257,8 +257,9 @@ def daemon_http_get(self) -> None: self.server.headers_catalog, self.headers) + # bounce corporate servers if self.headers.get('Server'): - if self.headers['Server'] in corp_servers(): + if is_corporate(self.headers['Server']): print('GET HTTP Corporate leech bounced: ' + self.headers['Server']) http_402(self) diff --git a/daemon_post.py b/daemon_post.py index 4c0c7ca6b..ea6c9d982 100644 --- a/daemon_post.py +++ b/daemon_post.py @@ -11,8 +11,8 @@ import time import errno import json from socket import error as SocketError +from flags import is_corporate from utils import replace_strings -from utils import corp_servers from utils import string_ends_with from utils import get_config_param from utils import decoded_host @@ -156,7 +156,7 @@ def daemon_http_post(self) -> None: self.server.last_postreq = curr_time_postreq if self.headers.get('Server'): - if self.headers['Server'] in corp_servers(): + if is_corporate(self.headers['Server']): print('POST HTTP Corporate leech bounced: ' + self.headers['Server']) http_402(self) diff --git a/flags.py b/flags.py index 2449872a1..72ecb4bed 100644 --- a/flags.py +++ b/flags.py @@ -623,3 +623,16 @@ def url_permitted(url: str, federation_list: []) -> bool: if domain in url: return True return False + + +def is_corporate(server_name: str) -> bool: + """Is the given server name a corporate leech? + """ + server_lower = server_name.lower() + if 'google' in server_lower or \ + 'cloudflare' in server_lower or \ + 'facebook' in server_lower or \ + 'microsoft' in server_lower or \ + 'github' in server_lower: + return True + return False diff --git a/utils.py b/utils.py index 7c6a23542..fbc76d541 100644 --- a/utils.py +++ b/utils.py @@ -5018,13 +5018,6 @@ def lines_in_file(filename: str) -> int: return 0 -def corp_servers() -> (): - """Returns a list of despised corporate thieves - """ - return ('GitHub.com', 'github.com', 'cloudflare', 'microsoft.com', - 'google.com', 'google.co.') - - def get_media_url_from_video(post_json_object: {}) -> (str, str, str, str): """Within a Video post (eg peertube) return the media details """