Ошибка ModSecurity с Django - PullRequest
1 голос
/ 12 мая 2011

Я пытаюсь получить доступ к странице Django через приложение Facebook (iframe), которое я сделал с помощью fb.py в DreamHost, и продолжаю получать внутреннюю ошибку сервера.

Глядя в журналы ошибок, вот что я вижу:

ModSecurity: Фильтр вывода: не удалось прочитать сегмент (rc 104): сброс соединения по пиру

Я думаю, что это связано с запросом POST. Кто-то еще спрашивал об этой ошибке на некоторых форумах почти год назад, но безрезультатно:

ModSecurity: Фильтр вывода: не удалось прочитать сегмент (rc 104): сброс соединения по пиру

Все, что я мог найти в поиске, это http://www.modsecurity.org:

"Когда mod_security отклоняет такой запрос, он отправляет корзину ошибок с, например, кодом 403 по цепочке выходного фильтра, оставляя статус r-> как есть (например, 500)."

Есть идеи? Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

Так что я потратил слишком много времени, пытаясь понять это.Я остановился на (немного дерьмовом) обходном пути: добавьте {% csrf_token %} в любое место вашего шаблона (я предполагаю, что вы передали аргумент context_instance=RequestContext(request) своему render_to_response или какому-либо другому).

Я думаю, что происходит то, что куки-файлы на самом деле не установлены (это можно проверить с помощью проверки куки-файлов в инструментах разработки любого браузера).Добавление приведенного выше кода в ваш шаблон заставляет это.У меня есть ощущение, что это может быть исправлено в более поздних версиях Django, и кажется, что есть очевидные исправления для 1.4+ (например, см. здесь ).К сожалению, Dreamhost привязал нас к 1.2.3, поэтому нам нужно справиться.

0 голосов
/ 21 июля 2011

Вы внедрили защиту CSRF согласно https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax?

Примечание для перекрестной проверки с версией Django, которую вы используете.

...