Рубрики
Без рубрики

Скрыто на простые виде, 8% проектов Django имеют Flacy Mardware.

Код проверки доктора Django и автоматические фиксирует антиблокировки Django. Мы проверили 666 проектов Django для Pro … Tagged с Django, WebDev, Python, Programming.

Код проверки доктора Django и автоматические фиксирует антиблокировки Django. Мы проверили 666 проектов Django для проблем, препятствующие ремонтопригодности и обнаружили, что 8% сайтов Django имеют неправильно заказанные промежуточные программы Читать дальше Отказ

Неправильное промежуточное программное обеспечение может сломать промежуточное программное обеспечение, следовательно, документы для промежуточного программного обеспечения консультируют Это должно прийти до x или после тебя Некоторые промежуточные программы читают заголовки, которые другие устанавливают. Некоторые заданные заголовки, которые влияют на кэширование. Некоторые выполняют Действия на оказанном контент ответа такие как ГЦИП. Таким образом, мы можем видеть, почему порядок важен.

Давайте вставке в заказ встроенное промежуточное программное обеспечение Django должно соответствовать, а почему ваш сайт может сломаться, если вы не придерживаетесь этого заказа. Неправильное заказанное промежуточное программное обеспечение может сломаться сделать эти функции не работать, как вы задуманные в разы.

Возле начала

SecurityMiddleware Промежуточное программное обеспечение, которое увлекается безопасностью. Проверки безопасности должны произойти как можно раньше запроса, поэтому совет должен иметь это в начале промежуточного программного обеспечения. Смотрите здесь Для нашего глубокого погружения в это промежуточное программное обеспечение и видео, демонстрирующие хаки, ваш сайт уязвим без него.

Commonmiddleware Как подразумевает название, это выполняет общие операции, мы ожидаем, что Django делать такие как перенаправление в соответствии с Append_slash и Prepend_www параметр. Если Django перенаправляется на основе URL-адреса, мы хотим, чтобы это произошло как можно скорее, следовательно, это Middlware приходит в начале. Промежуточное программное обеспечение также устанавливает длину контента, на которой могут положиться другие Middlwares.

Localemiddleware Это обрабатывает интернационализацию контента. Это настраивает контент для каждого пользователя. Мы не хотели бы ни одной части нашего веб-сайта пропустить эту конкретную конкретную и пользовательскую настройку, специфичную к пользователю и у вас на английском языке на английском колодец на испанском языке. Нет, Muévelo Cerca del Commartio Отказ

Близко к концу

Есть два встроенных Foodback Indithwares, которые выполняют некоторую работу, если Все остальное не удается :

RedirectfallbackMiddleware Это промежуточное программное обеспечение обрабатывает 404, перенаправляя где-то в зависимости от перенаправления записей, установленных в Django Admin. Мы не хотели бы, чтобы это произошло в начале, в противном случае записи базы данных будут иметь приоритет за кодом в URLS.PY, а также поиск базы данных замедляет ответ, который не требует отступления.

Flatpagefallbackmiddleware Очень похоже на Redirectfallbackmiddleware. Но он обслуживает плоские страницы вместо того, чтобы перенаправить пользователь где-то.

Относительно друг друга

И тогда начинается веб-паутина:

UpdateCachemidDleware до Sessionmiddleware UpdateCachemiddleware. до Gzipmiddleware UpdateCachemidDleware до Localemiddleware. Sessionmiddleware до Localemiddleware Gzipmiddleware. до Conditualgetmiddleware Sessionmiddleware до Аутентификация Moddleware Sessionmiddleware. до Messagemiddleware Csrfviewmiddleware до ReturnUsermidDleware. Fetchfromcachemiddleware. до Sessionmiddleware Fetchfromcachemiddleware. до Gzipmiddleware Fetchfromcachemiddleware. до Localemiddleware.

Ваш кодовый базе правильно заказывает промежуточное программное обеспечение?

Почти 1 в 10 из разработчиков чтения этого, вероятно, делают. Легко пропустить что-то во время обзора кода. Я могу проверить это для вас в django.doctor или может Просмотрите свой GitHUB PRS :

Или попробуйте Рефакторы Django Challenges Отказ

Оригинал: “https://dev.to/djangodoctor/hidden-in-plain-sight-8-of-django-projects-have-broken-middleware-order-54bm”