Spec-Zone.ru › Flask 2.0

Предварительное замечание для опытных программистов

Локальные переменные потока в Flask

Одно из решений при разработке Flask заключалось в том, чтобы простые задачи оставались простыми; они не должны требовать много кода, но при этом не должны ограничивать вас. Из-за этого Flask использует некоторые решения, которые некоторые могут посчитать неожиданными или нестандартными. Например, Flask внутренне использует локальные переменные потока, чтобы не нужно было передавать объекты из функции в функцию в рамках запроса для обеспечения потокобезопасности. Такой подход удобен, но требует действительного контекста запроса для инъекции зависимостей или при попытке повторного использования кода, использующего значение, связанное с запросом. Проект Flask честен в отношении локальных переменных потока, не скрывает их и указывает в коде и документации, где они используются.

Разработка веб-приложений с осторожностью

Всегда помните о безопасности при создании веб-приложений.

Если вы создаёте веб-приложение, вы, скорее всего, разрешаете пользователям регистрироваться и оставлять свои данные на вашем сервере. Пользователи доверяют вам свои данные. И даже если вы единственный пользователь, который может оставить данные в вашем приложении, вы всё равно хотите, чтобы эти данные хранились безопасно.

К сожалению, существует множество способов нарушения безопасности веб-приложения. Flask защищает вас от одной из наиболее распространённых проблем безопасности современных веб-приложений: межсайтового скриптинга (XSS). Если вы не помечаете небезопасный HTML как безопасный, Flask и лежащий в основе движок шаблонов Jinja2 позаботятся об этом. Но есть и множество других способов создать проблемы с безопасностью.

В документации будут предупреждения о аспектах разработки веб-приложений, требующих внимания к безопасности. Некоторые из этих проблем безопасности гораздо сложнее, чем можно себе представить, и мы иногда недооцениваем вероятность того, что уязвимость будет эксплуатироваться — пока какой-нибудь хитрый злоумышленник не найдёт способ воспользоваться нашими приложениями. И не думайте, что ваше приложение недостаточно важно, чтобы привлечь злоумышленника. В зависимости от вида атаки, есть вероятность, что автоматические боты будут пытаться заполнить вашу базу данных спамом, ссылками на вредоносное ПО и тому подобным.

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

© 2007–2021 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/2.0.x/advanced_foreword/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API