From 801fe367acae99ed8ed2cb416a5c932c56c3b6d9 Mon Sep 17 00:00:00 2001 From: tek Date: Fri, 7 Apr 2023 14:43:20 +0200 Subject: [PATCH] Improves WebkitResourceLoadStatistics module --- mvt/common/indicators.py | 2 ++ .../modules/mixed/webkit_resource_load_statistics.py | 10 +++++++++- tests/common/test_indicators.py | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mvt/common/indicators.py b/mvt/common/indicators.py index 4b47bb0..6cf3056 100644 --- a/mvt/common/indicators.py +++ b/mvt/common/indicators.py @@ -237,6 +237,8 @@ class Indicators: # being matched. if not url: return None + if not isinstance(url, str): + return None try: # First we use the provided URL. diff --git a/mvt/ios/modules/mixed/webkit_resource_load_statistics.py b/mvt/ios/modules/mixed/webkit_resource_load_statistics.py index 334f3ec..d4371d8 100644 --- a/mvt/ios/modules/mixed/webkit_resource_load_statistics.py +++ b/mvt/ios/modules/mixed/webkit_resource_load_statistics.py @@ -70,7 +70,15 @@ class WebkitResourceLoadStatistics(IOSExtraction): cur = conn.cursor() try: - cur.execute("SELECT * from ObservedDomains;") + # FIXME: table contains extra fields with timestamp here + cur.execute(""" + SELECT + domainID, + registrableDomain, + lastSeen, + hadUserInteraction + from ObservedDomains; + """) except sqlite3.OperationalError: return diff --git a/tests/common/test_indicators.py b/tests/common/test_indicators.py index 4d469c2..89cad49 100644 --- a/tests/common/test_indicators.py +++ b/tests/common/test_indicators.py @@ -24,8 +24,10 @@ class TestIndicators: def test_check_domain(self, indicator_file): ind = Indicators(log=logging) ind.load_indicators_files([indicator_file], load_default=False) + assert ind.check_domain(42) is None assert ind.check_domain("https://www.example.org/foobar") assert ind.check_domain("http://example.org:8080/toto") + assert ind.check_domain("https://github.com") is None def test_check_android_property(self, indicator_file): ind = Indicators(log=logging)