Перейти к содержанию

JP0419S

Использование фиксированных значений при конфигурировании flask

Static Badge Static Badge


Конфигурация flask приложения с использованием фиксированных значений не рекомендуется. Предпочтительнее применять параметры, которые зависят от текущего окружения, так как это позволяет защитить сервис от случайной активации, например, тестового режима или режима отладки в производственной среде.

Например, flask в режиме отладки использует дебаггер werkzeug, который открывает возможность исполнения произвольного кода. Данный режим не должен использоваться вне тестовой среды.

Проверка срабатывает при записи константных значений для параметров DEBUG, TESTING, ENV, SECRET_KEY в словарь config с использованием конструкции app.config[DEBUG] = True

Пример небезопасного использования

import os
from flask import Flask

app = Flask(__name__)
# use argument write of hardcoded value
app.config["DEBUG"] = True
app.config["ENV"] = "production"
app.config["TESTING"] = False
app.config["SECRET_KEY"] = "abcd"
# OK - no hardcoded value
app.config["TESTING"] = os.getenv("TESTING")
python -m flask run --host=0.0.0.0

Дополнительная информация