Sat, 10 Apr 2021 18:38:27 +0200
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
3 | # Copyright (c) 2017 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a cache for Google Safe Browsing. |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | # |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | # Some part of this code were ported from gglsbl.storage and adapted |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | # to QtSql. |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | # |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | # https://github.com/afilipovich/gglsbl |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | # |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | import os |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
19 | from PyQt5.QtCore import ( |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
20 | QObject, QByteArray, QCryptographicHash, QCoreApplication, QEventLoop |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
21 | ) |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
22 | from PyQt5.QtSql import QSql, QSqlDatabase, QSqlQuery |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
6229
72b40274a3b6
Web Browser NG, Safe Browsing: refactored the code to prepare the implementation of the Lookup API (v4)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6186
diff
changeset
|
24 | from .SafeBrowsingThreatList import ThreatList |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5819
diff
changeset
|
25 | |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5819
diff
changeset
|
26 | |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | class SafeBrowsingCache(QObject): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Class implementing a cache for Google Safe Browsing. |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | create_threat_list_stmt = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | CREATE TABLE threat_list |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | (threat_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | platform_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | threat_entry_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | client_state character varying(42), |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | timestamp timestamp without time zone DEFAULT current_timestamp, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | PRIMARY KEY (threat_type, platform_type, threat_entry_type) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | ) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | drop_threat_list_stmt = """DROP TABLE IF EXISTS threat_list""" |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | create_full_hashes_stmt = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | CREATE TABLE full_hash |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | (value BLOB NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | threat_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | platform_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | threat_entry_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | downloaded_at timestamp without time zone DEFAULT current_timestamp, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | expires_at timestamp without time zone |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | NOT NULL DEFAULT current_timestamp, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | malware_threat_type varchar(32), |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | PRIMARY KEY (value, threat_type, platform_type, threat_entry_type) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | ) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | drop_full_hashes_stmt = """DROP TABLE IF EXISTS full_hash""" |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | create_hash_prefix_stmt = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | CREATE TABLE hash_prefix |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | (value BLOB NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | cue character varying(4) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | threat_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | platform_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | threat_entry_type character varying(128) NOT NULL, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | timestamp timestamp without time zone DEFAULT current_timestamp, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | negative_expires_at timestamp without time zone |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | NOT NULL DEFAULT current_timestamp, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | PRIMARY KEY (value, threat_type, platform_type, threat_entry_type), |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | FOREIGN KEY(threat_type, platform_type, threat_entry_type) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | REFERENCES threat_list(threat_type, platform_type, threat_entry_type) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | ON DELETE CASCADE |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | ) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | drop_hash_prefix_stmt = """DROP TABLE IF EXISTS hash_prefix""" |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | create_full_hash_cue_idx = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | CREATE INDEX idx_hash_prefix_cue ON hash_prefix (cue) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | drop_full_hash_cue_idx = """DROP INDEX IF EXISTS idx_hash_prefix_cue""" |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | create_full_hash_expires_idx = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | CREATE INDEX idx_full_hash_expires_at ON full_hash (expires_at) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | drop_full_hash_expires_idx = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | DROP INDEX IF EXISTS idx_full_hash_expires_at |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | create_full_hash_value_idx = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | CREATE INDEX idx_full_hash_value ON full_hash (value) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | drop_full_hash_value_idx = """DROP INDEX IF EXISTS idx_full_hash_value""" |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
5853
e45a570528a4
Changed the safe browsing code to be less interruptive.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5847
diff
changeset
|
93 | maxProcessEventsTime = 500 |
e45a570528a4
Changed the safe browsing code to be less interruptive.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5847
diff
changeset
|
94 | |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | def __init__(self, dbPath, parent=None): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | Constructor |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | @param dbPath path to store the cache DB into |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | @type str |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | @param parent reference to the parent object |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | @type QObject |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
104 | super().__init__(parent) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | self.__connectionName = "SafeBrowsingCache" |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | if not os.path.exists(dbPath): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | os.makedirs(dbPath) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | self.__dbFileName = os.path.join(dbPath, "SafeBrowsingCache.db") |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | preparationNeeded = not os.path.exists(self.__dbFileName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | self.__openCacheDb() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | if preparationNeeded: |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
116 | self.prepareCacheDb() |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
118 | def close(self): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
119 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
120 | Public method to close the database. |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
121 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
122 | if QSqlDatabase.database(self.__connectionName).isOpen(): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
123 | QSqlDatabase.database(self.__connectionName).close() |
5847
fd1262c3fa79
Fixed a copy and paste issue in the safe browsing cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5829
diff
changeset
|
124 | QSqlDatabase.removeDatabase(self.__connectionName) |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
125 | |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | def __openCacheDb(self): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | Private method to open the cache database. |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | @return flag indicating the open state |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | @rtype bool |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | db = QSqlDatabase.database(self.__connectionName, False) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | if not db.isValid(): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | # the database connection is a new one |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | db = QSqlDatabase.addDatabase("QSQLITE", self.__connectionName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | db.setDatabaseName(self.__dbFileName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | opened = db.open() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | if not opened: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | QSqlDatabase.removeDatabase(self.__connectionName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | else: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | opened = True |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | return opened |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
145 | def prepareCacheDb(self): |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | """ |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
147 | Public method to prepare the cache database. |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | db = QSqlDatabase.database(self.__connectionName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | db.transaction() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | try: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | query = QSqlQuery(db) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | # step 1: drop old tables |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
154 | query.exec(self.drop_threat_list_stmt) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
155 | query.exec(self.drop_full_hashes_stmt) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
156 | query.exec(self.drop_hash_prefix_stmt) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | # step 2: drop old indices |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
158 | query.exec(self.drop_full_hash_cue_idx) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
159 | query.exec(self.drop_full_hash_expires_idx) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
160 | query.exec(self.drop_full_hash_value_idx) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | # step 3: create tables |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
162 | query.exec(self.create_threat_list_stmt) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
163 | query.exec(self.create_full_hashes_stmt) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
164 | query.exec(self.create_hash_prefix_stmt) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | # step 4: create indices |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
166 | query.exec(self.create_full_hash_cue_idx) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
167 | query.exec(self.create_full_hash_expires_idx) |
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
168 | query.exec(self.create_full_hash_value_idx) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | finally: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | del query |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | db.commit() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | def lookupFullHashes(self, hashValues): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | Public method to get a list of threat lists and expiration flag |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | for the given hashes if a hash is blacklisted. |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | @param hashValues list of hash values to look up |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | @type list of bytes |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | @return list of tuples containing the threat list info and the |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | expiration flag |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | @rtype list of tuple of (ThreatList, bool) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | queryStr = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | SELECT threat_type, platform_type, threat_entry_type, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | expires_at < current_timestamp AS has_expired |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
187 | FROM full_hash WHERE value IN ({0}) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | output = [] |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | db = QSqlDatabase.database(self.__connectionName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | if db.isOpen(): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | db.transaction() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | try: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | query = QSqlQuery(db) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | query.prepare( |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
197 | queryStr.format(",".join(["?"] * len(hashValues)))) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | for hashValue in hashValues: |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
199 | query.addBindValue( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
200 | QByteArray(hashValue), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
201 | QSql.ParamTypeFlag.In | QSql.ParamTypeFlag.Binary) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
203 | query.exec() |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | |
7022
a5f9f601b6ac
SafeBrowsingCache: adapted some __IGNORE_WARNING__ comments to the changed message numbers (M513 -> M523)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
205 | while query.next(): # __IGNORE_WARNING_M523__ |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | threatType = query.value(0) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | platformType = query.value(1) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | threatEntryType = query.value(2) |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
209 | hasExpired = bool(query.value(3)) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | threatList = ThreatList(threatType, platformType, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | threatEntryType) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | output.append((threatList, hasExpired)) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
213 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
214 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
215 | self.maxProcessEventsTime) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | del query |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | finally: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | db.commit() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | return output |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | def lookupHashPrefix(self, prefixes): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | Public method to look up hash prefixes in the local cache. |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
226 | @param prefixes list of hash prefixes to look up |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | @type list of bytes |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | @return list of tuples containing the threat list, full hash and |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | negative cache expiration flag |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | @rtype list of tuple of (ThreatList, bytes, bool) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | queryStr = """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | SELECT value,threat_type,platform_type,threat_entry_type, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | negative_expires_at < current_timestamp AS negative_cache_expired |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
235 | FROM hash_prefix WHERE cue IN ({0}) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | """ |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | output = [] |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | db = QSqlDatabase.database(self.__connectionName) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | if db.isOpen(): |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | db.transaction() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | try: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | query = QSqlQuery(db) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | query.prepare( |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
245 | queryStr.format(",".join(["?"] * len(prefixes)))) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | for prefix in prefixes: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | query.addBindValue(prefix) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
249 | query.exec() |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | |
7022
a5f9f601b6ac
SafeBrowsingCache: adapted some __IGNORE_WARNING__ comments to the changed message numbers (M513 -> M523)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
251 | while query.next(): # __IGNORE_WARNING_M523__ |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | fullHash = bytes(query.value(0)) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | threatType = query.value(1) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | platformType = query.value(2) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | threatEntryType = query.value(3) |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
256 | negativeCacheExpired = bool(query.value(4)) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | threatList = ThreatList(threatType, platformType, |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | threatEntryType) |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | output.append((threatList, fullHash, negativeCacheExpired)) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
260 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
261 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
262 | self.maxProcessEventsTime) |
5817
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | del query |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | finally: |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | db.commit() |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | |
a5f6c9128500
Started implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | return output |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
268 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
269 | def storeFullHash(self, threatList, hashValue, cacheDuration, |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
270 | malwareThreatType): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
271 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
272 | Public method to store full hash data in the cache database. |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
273 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
274 | @param threatList threat list info object |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
275 | @type ThreatList |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
276 | @param hashValue hash to be stored |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
277 | @type bytes |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
278 | @param cacheDuration duration the data should remain in the cache |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
279 | @type int or float |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
280 | @param malwareThreatType threat type of the malware |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
281 | @type str |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
282 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
283 | insertQueryStr = """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
284 | INSERT OR IGNORE INTO full_hash |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
285 | (value, threat_type, platform_type, threat_entry_type, |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
286 | malware_threat_type, downloaded_at) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
287 | VALUES |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
288 | (?, ?, ?, ?, ?, current_timestamp) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
289 | """ |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
290 | updateQueryStr = ( |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
291 | """ |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
292 | UPDATE full_hash SET |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
293 | expires_at=datetime(current_timestamp, '+{0} SECONDS') |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
294 | WHERE value=? AND threat_type=? AND platform_type=? AND |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
295 | threat_entry_type=? |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
296 | """.format(int(cacheDuration)) |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
297 | ) |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
298 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
299 | db = QSqlDatabase.database(self.__connectionName) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
300 | if db.isOpen(): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
301 | db.transaction() |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
302 | try: |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
303 | query = QSqlQuery(db) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
304 | query.prepare(insertQueryStr) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
305 | query.addBindValue( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
306 | QByteArray(hashValue), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
307 | QSql.ParamTypeFlag.In | QSql.ParamTypeFlag.Binary) |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
308 | query.addBindValue(threatList.threatType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
309 | query.addBindValue(threatList.platformType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
310 | query.addBindValue(threatList.threatEntryType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
311 | query.addBindValue(malwareThreatType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
312 | query.exec() |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
313 | del query |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
314 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
315 | query = QSqlQuery(db) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
316 | query.prepare(updateQueryStr) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
317 | query.addBindValue( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
318 | QByteArray(hashValue), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
319 | QSql.ParamTypeFlag.In | QSql.ParamTypeFlag.Binary) |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
320 | query.addBindValue(threatList.threatType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
321 | query.addBindValue(threatList.platformType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
322 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
323 | query.exec() |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
324 | del query |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
325 | finally: |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
326 | db.commit() |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
327 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
328 | def deleteHashPrefixList(self, threatList): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
329 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
330 | Public method to delete hash prefixes for a given threat list. |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
331 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
332 | @param threatList threat list info object |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
333 | @type ThreatList |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
334 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
335 | queryStr = """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
336 | DELETE FROM hash_prefix |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
337 | WHERE threat_type=? AND platform_type=? AND threat_entry_type=? |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
338 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
339 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
340 | db = QSqlDatabase.database(self.__connectionName) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
341 | if db.isOpen(): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
342 | db.transaction() |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
343 | try: |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
344 | query = QSqlQuery(db) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
345 | query.prepare(queryStr) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
346 | query.addBindValue(threatList.threatType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
347 | query.addBindValue(threatList.platformType) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
348 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
349 | query.exec() |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
350 | del query |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
351 | finally: |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
352 | db.commit() |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
353 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
354 | def cleanupFullHashes(self, keepExpiredFor=43200): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
355 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
356 | Public method to clean up full hash entries expired more than the |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
357 | given time. |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
358 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
359 | @param keepExpiredFor time period in seconds of entries to be expired |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
360 | @type int or float |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
361 | """ |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
362 | queryStr = ( |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
363 | """ |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
364 | DELETE FROM full_hash |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
365 | WHERE expires_at=datetime(current_timestamp, '{0} SECONDS') |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
366 | """.format(int(keepExpiredFor)) |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
367 | ) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
368 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
369 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
370 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
371 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
372 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
373 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
374 | query.prepare(queryStr) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
375 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
376 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
377 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
378 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
379 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
380 | def updateHashPrefixExpiration(self, threatList, hashPrefix, |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
381 | negativeCacheDuration): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
382 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
383 | Public method to update the hash prefix expiration time. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
384 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
385 | @param threatList threat list info object |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
386 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
387 | @param hashPrefix hash prefix |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
388 | @type bytes |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
389 | @param negativeCacheDuration time in seconds the entry should remain |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
390 | in the cache |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
391 | @type int or float |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
392 | """ |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
393 | queryStr = ( |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
394 | """ |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
395 | UPDATE hash_prefix |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
396 | SET negative_expires_at=datetime(current_timestamp, '+{0} SECONDS') |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
397 | WHERE value=? AND threat_type=? AND platform_type=? AND |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
398 | threat_entry_type=? |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
399 | """.format(int(negativeCacheDuration)) |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
400 | ) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
401 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
402 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
403 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
404 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
405 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
406 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
407 | query.prepare(queryStr) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
408 | query.addBindValue( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
409 | QByteArray(hashPrefix), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
410 | QSql.ParamTypeFlag.In | QSql.ParamTypeFlag.Binary) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
411 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
412 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
413 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
414 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
415 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
416 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
417 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
418 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
419 | def getThreatLists(self): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
420 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
421 | Public method to get the available threat lists. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
422 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
423 | @return list of available threat lists |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
424 | @rtype list of tuples of (ThreatList, str) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
425 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
426 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
427 | SELECT threat_type,platform_type,threat_entry_type,client_state |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
428 | FROM threat_list |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
429 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
430 | output = [] |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
431 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
432 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
433 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
434 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
435 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
436 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
437 | query.prepare(queryStr) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
438 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
439 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
440 | |
7022
a5f9f601b6ac
SafeBrowsingCache: adapted some __IGNORE_WARNING__ comments to the changed message numbers (M513 -> M523)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
441 | while query.next(): # __IGNORE_WARNING_M523__ |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
442 | threatType = query.value(0) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
443 | platformType = query.value(1) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
444 | threatEntryType = query.value(2) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
445 | clientState = query.value(3) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
446 | threatList = ThreatList(threatType, platformType, |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
447 | threatEntryType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
448 | output.append((threatList, clientState)) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
449 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
450 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
451 | self.maxProcessEventsTime) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
452 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
453 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
454 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
455 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
456 | return output |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
457 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
458 | def addThreatList(self, threatList): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
459 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
460 | Public method to add a threat list to the cache. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
461 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
462 | @param threatList threat list to be added |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
463 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
464 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
465 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
466 | INSERT OR IGNORE INTO threat_list |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
467 | (threat_type, platform_type, threat_entry_type, timestamp) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
468 | VALUES (?, ?, ?, current_timestamp) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
469 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
470 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
471 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
472 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
473 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
474 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
475 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
476 | query.prepare(queryStr) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
477 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
478 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
479 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
480 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
481 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
482 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
483 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
484 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
485 | def deleteThreatList(self, threatList): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
486 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
487 | Public method to delete a threat list from the cache. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
488 | |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5819
diff
changeset
|
489 | @param threatList threat list to be deleted |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
490 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
491 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
492 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
493 | DELETE FROM threat_list |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
494 | WHERE threat_type=? AND platform_type=? AND threat_entry_type=? |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
495 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
496 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
497 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
498 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
499 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
500 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
501 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
502 | query.prepare(queryStr) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
503 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
504 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
505 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
506 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
507 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
508 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
509 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
510 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
511 | def updateThreatListClientState(self, threatList, clientState): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
512 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
513 | Public method to update the client state of a threat list. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
514 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
515 | @param threatList threat list to update the client state for |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
516 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
517 | @param clientState new client state |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
518 | @type str |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
519 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
520 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
521 | UPDATE threat_list SET timestamp=current_timestamp, client_state=? |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
522 | WHERE threat_type=? AND platform_type=? AND threat_entry_type=? |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
523 | """ |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
524 | |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
525 | db = QSqlDatabase.database(self.__connectionName) |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
526 | if db.isOpen(): |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
527 | db.transaction() |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
528 | try: |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
529 | query = QSqlQuery(db) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
530 | query.prepare(queryStr) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
531 | query.addBindValue(clientState) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
532 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
533 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
534 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
535 | query.exec() |
5818
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
536 | del query |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
537 | finally: |
cae9956be67e
Continued implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5817
diff
changeset
|
538 | db.commit() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
539 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
540 | def hashPrefixListChecksum(self, threatList): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
541 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
542 | Public method to calculate the SHA256 checksum for an alphabetically |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
543 | sorted concatenated list of hash prefixes. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
544 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
545 | @param threatList threat list to calculate checksum for |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
546 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
547 | @return SHA256 checksum |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
548 | @rtype bytes |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
549 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
550 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
551 | SELECT value FROM hash_prefix |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
552 | WHERE threat_type=? AND platform_type=? AND threat_entry_type=? |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
553 | ORDER BY value |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
554 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
555 | checksum = None |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
556 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
557 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
558 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
559 | db.transaction() |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
560 | sha256Hash = QCryptographicHash( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
561 | QCryptographicHash.Algorithm.Sha256) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
562 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
563 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
564 | query.prepare(queryStr) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
565 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
566 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
567 | query.addBindValue(threatList.threatEntryType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
568 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
569 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
570 | |
7022
a5f9f601b6ac
SafeBrowsingCache: adapted some __IGNORE_WARNING__ comments to the changed message numbers (M513 -> M523)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
571 | while query.next(): # __IGNORE_WARNING_M523__ |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
572 | sha256Hash.addData(query.value(0)) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
573 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
574 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
575 | self.maxProcessEventsTime) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
576 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
577 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
578 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
579 | |
5829
d3448873ced3
Finished coding the safe browsing module of the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5820
diff
changeset
|
580 | checksum = bytes(sha256Hash.result()) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
581 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
582 | return checksum |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
583 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
584 | def populateHashPrefixList(self, threatList, prefixes): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
585 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
586 | Public method to populate the hash prefixes for a threat list. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
587 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
588 | @param threatList threat list of the hash prefixes |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
589 | @type ThreatList |
5820
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5819
diff
changeset
|
590 | @param prefixes list of hash prefixes to be inserted |
b610cb5b501a
Started implementing the safe browsing manager and management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5819
diff
changeset
|
591 | @type HashPrefixList |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
592 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
593 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
594 | INSERT INTO hash_prefix |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
595 | (value, cue, threat_type, platform_type, threat_entry_type, |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
596 | timestamp) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
597 | VALUES (?, ?, ?, ?, ?, current_timestamp) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
598 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
599 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
600 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
601 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
602 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
603 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
604 | for prefix in prefixes: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
605 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
606 | query.prepare(queryStr) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
607 | query.addBindValue( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
608 | QByteArray(prefix), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
609 | QSql.ParamTypeFlag.In | QSql.ParamTypeFlag.Binary) |
7192
a22eee00b052
Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7022
diff
changeset
|
610 | query.addBindValue(prefix[:4].hex()) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
611 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
612 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
613 | query.addBindValue(threatList.threatEntryType) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
614 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
615 | del query |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
616 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
617 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
618 | self.maxProcessEventsTime) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
619 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
620 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
621 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
622 | def getHashPrefixValuesToRemove(self, threatList, indexes): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
623 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
624 | Public method to get the hash prefix values to be removed from the |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
625 | cache. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
626 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
627 | @param threatList threat list to remove prefixes from |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
628 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
629 | @param indexes list of indexes of prefixes to be removed |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
630 | @type list of int |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
631 | @return list of hash prefixes to be removed |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
632 | @rtype list of bytes |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
633 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
634 | queryStr = """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
635 | SELECT value FROM hash_prefix |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
636 | WHERE threat_type=? AND platform_type=? AND threat_entry_type=? |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
637 | ORDER BY value |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
638 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
639 | indexes = set(indexes) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
640 | output = [] |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
641 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
642 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
643 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
644 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
645 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
646 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
647 | query.prepare(queryStr) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
648 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
649 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
650 | query.addBindValue(threatList.threatEntryType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
651 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
652 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
653 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
654 | index = 0 |
7022
a5f9f601b6ac
SafeBrowsingCache: adapted some __IGNORE_WARNING__ comments to the changed message numbers (M513 -> M523)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
655 | while query.next(): # __IGNORE_WARNING_M523__ |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
656 | if index in indexes: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
657 | prefix = bytes(query.value(0)) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
658 | output.append(prefix) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
659 | index += 1 |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
660 | QCoreApplication.processEvents( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
661 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
662 | self.maxProcessEventsTime) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
663 | del query |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
664 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
665 | db.commit() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
666 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
667 | return output |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
668 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
669 | def removeHashPrefixIndices(self, threatList, indexes): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
670 | """ |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
671 | Public method to remove hash prefixes from the cache. |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
672 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
673 | @param threatList threat list to delete hash prefixes of |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
674 | @type ThreatList |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
675 | @param indexes list of indexes of prefixes to be removed |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
676 | @type list of int |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
677 | """ |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
678 | queryStr = ( |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
679 | """ |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
680 | DELETE FROM hash_prefix |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
681 | WHERE threat_type=? AND platform_type=? AND |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
682 | threat_entry_type=? AND value IN ({0}) |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
683 | """ |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
684 | ) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
685 | batchSize = 40 |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
686 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
687 | prefixesToRemove = self.getHashPrefixValuesToRemove( |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
688 | threatList, indexes) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
689 | if prefixesToRemove: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
690 | db = QSqlDatabase.database(self.__connectionName) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
691 | if db.isOpen(): |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
692 | db.transaction() |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
693 | try: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
694 | for index in range(0, len(prefixesToRemove), batchSize): |
7269
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
695 | removeBatch = prefixesToRemove[ |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
696 | index:(index + batchSize) |
0c63ea7f94bd
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
697 | ] |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
698 | |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
699 | query = QSqlQuery(db) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
700 | query.prepare( |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
701 | queryStr.format(",".join(["?"] * len(removeBatch))) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
702 | ) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
703 | query.addBindValue(threatList.threatType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
704 | query.addBindValue(threatList.platformType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
705 | query.addBindValue(threatList.threatEntryType) |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
706 | for prefix in removeBatch: |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
707 | query.addBindValue( |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
708 | QByteArray(prefix), |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
709 | QSql.ParamTypeFlag.In | |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
710 | QSql.ParamTypeFlag.Binary) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
711 | query.exec() |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
712 | del query |
5853
e45a570528a4
Changed the safe browsing code to be less interruptive.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5847
diff
changeset
|
713 | QCoreApplication.processEvents( |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
714 | QEventLoop.ProcessEventsFlag.AllEvents, |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
715 | self.maxProcessEventsTime) |
5819
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
716 | finally: |
69fa45e95673
Finished implementing the SafeBrowsingCache class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5818
diff
changeset
|
717 | db.commit() |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
718 | |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
719 | # |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
720 | # eflag: noqa = S608 |