/ / Чому б не генерувати секретний ключ кожного разу, коли почнеться Flask? - python, session, flask, session-cookies

Чому б не генерувати секретний ключ кожного разу, коли починається Фляжка? - python, сеанс, колби, сесійні файли cookie

При використанні сеансів Flask вимагає секретного ключа. У кожному прикладі, який я бачив, секретний ключ генерується, а потім зберігається або в вихідному коді, або в конфігураційному файлі.

У чому причина зберігати її постійно? Чому б не просто створити його, коли програма запускається?

app.secret_key = os.urandom(50)

Відповіді:

26 за відповідь № 1

Секретний ключ використовується для підписування сеансового файлу cookie. Якщо потрібно було перезапустити програму та відновити ключ, всі існуючі сеанси буде визнано недійсним. Це, ймовірно, не те, що ви хочете (або, принаймні, не правильний шлях про призначення недійсних сесій). URL-адреси (наприклад).

Можливо, потрібно буде перезапустити програмучерез аварію, або тому, що сервер перезавантажився, або тому, що ви натискаєте виправлення помилки або нову функцію, або тому, що сервер, який ви використовуєте, створює нові процеси, тощо.

Стандартна практика полягає в тому, щоб мати клавішу викиду, що передається в репо (так, що там є щось там для dev машин), а потім встановити ключ в локальному конфігурації при розгортанні. Таким чином, ключ не просочився і не потребує регенерації.

Існує також випадок запуску вторинногосистеми, які залежать від контексту програми, наприклад, селера для виконання фонових завдань або декількох екземплярів програми, які балансують навантаження. Якщо кожен запущений екземпляр програми має різні налаштування, у деяких випадках вони можуть працювати неправильно.