Получение внутренней ошибки при загрузке приложения canvas через FB, но не напрямую - PullRequest
0 голосов
/ 31 декабря 2011

Я использую Django для веб-приложений, в основном.Мне нужно написать страницу холста для обработки запросов.В простейшей форме у меня есть:

(r'^canvas/','commitments.views.canvas'),

в urls.py и:

@csrf_exempt
def canvas(request): 
    return HttpResponse("Hello world")

в views.py.Это все работает нормально, если я загружаю страницу напрямую.Однако, если я загружаю страницу через холст Facebook, я получаю ошибку, связанную с modsecurity ModSecurity: Output filter: Failed to read bucket (rc 104): Connection reset by peer [hostname "..."] [uri "/canvas/"].

Есть мысли о том, что я делаю здесь неправильно?Спасибо за помощь.

Ответы [ 2 ]

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

(x-post от здесь : решение может быть таким же)

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

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

0 голосов
/ 31 декабря 2011

На данный момент мне удалось справиться с этим, отключив mod_security («дополнительная веб-безопасность» на панели Dreamhost).

Сначала я попытался разобраться с этим с помощью следующего .htaccessинструкции, но они, кажется, не сработали:

SetEnvIfNoCase Request_URI ^/canvas/.*$ MODSEC_ENABLE=Off
<IfModule mod_security.c>
  SecFilterSelective REQUEST_URI "^/canvas/.*$" "allow,pass"
  SecFilterScanPOST Off
</IfModule>

Я бы хотел иметь возможность повторно включить mod_security, кроме как для разрешения URI холста, так что если у кого-то есть решение дляЯ был бы благодарен.Спасибо!

...