Add settings validation to prevent abuse

This commit is contained in:
Linus Dietz
2023-08-18 07:53:58 +02:00
parent 1039eab649
commit 3f1f793c1b
2 changed files with 13 additions and 1 deletions
+2 -1
View File
@@ -2,10 +2,11 @@ import logging
from volvo import authorize
from mqtt import update_loop, connect
from const import VERSION
from util import set_tz, setup_logging, set_mqtt_settings
from util import set_tz, setup_logging, set_mqtt_settings, validate_settings
if __name__ == '__main__':
validate_settings()
set_tz()
set_mqtt_settings()
setup_logging()
+11
View File
@@ -136,3 +136,14 @@ def set_mqtt_settings():
config.settings["mqtt"]["port"] = broker_port
config.settings["mqtt"]["username"] = broker_user
config.settings["mqtt"]["password"] = broker_pass
def validate_settings():
setting_keys = settings.volvoData["vccapikey"]
if isinstance(setting_keys, list):
if len(setting_keys) > 3:
raise Exception("Settings invalid! Maximum allowed vccapikeys are three!")
update_interval = settings["updateInterval"]
if update_interval < 60:
raise Exception("Settings invalid! Minimum allowed update interval is 60 seconds!")