2011-05-12 2 views
1

DreamHost에서 fb.py를 사용하여 만든 페이스 북의 App (iframe)을 통해 장고 페이지에 액세스하려고하는데 내부 서버 오류가 계속 발생합니다.장고의 ModSecurity 오류

ModSecurity를을 : : 출력 필터 : 오류 로그에서 찾고

, 이것은 내가 볼 것입니다 버킷을 읽지 못했습니다 (RC 104) : 피어에 의해 연결 재설정

난 그냥 생각 POST 요청과 관련이 있습니다. 누군가는 다른 아무 소용이 거의 년 전에 포럼의 수에이 오류에 대해 질문 :

ModSecurity: Output filter: Failed to read bucket (rc 104): Connection reset by peer

http://www.modsecurity.org에서이이었다들을 검색 내가 찾을 수있는 모든 :

"에 mod_security는 거부하는 경우 요청을 보내면 예를 들어 코드가 403 인 오류 버킷을 출력 필터 체인 아래로 보내고 r-> status는 그대로 (예 : 500) 남겨 둡니다. "

아이디어가 있으십니까? 감사!

답변

0

그래서이 문제를 해결하기 위해 너무 많은 시간을 보냈습니다. 나는 (약간 엿 같은) work-around에 정착했습니다 : {% csrf_token %}을 템플릿의 어느 곳에 나 추가하십시오. context_instance=RequestContext(request) 인수를 render_to_response 또는 그 이상으로 전달했다고 가정합니다.

나는 실제로 쿠키가 설정되지 않는다고 생각한다. (브라우저의 개발 도구에서 쿠키를 검사하여 확인할 수있다.) 위의 코드를 템플릿에 추가하면 강제 적용됩니다. Django의 이후 버전에서 이것이 해결 될 수 있다는 느낌이 들며 1.4+에 대한 확실한 수정 사항이있는 것으로 보입니다 (예 : here 참조). 불행히도 dreamhost는 1.2.3으로 우리를 붙였습니다. 그래서 우리는해야합니다.

+0

이것은 "해결 방법"이 아니지만 처음에해야 할 일입니다. 뷰에'POST '된 폼을 정의하는 템플릿에'{% csrf_token %}'을 추가해야합니다. CSRF가 구현 된 이후 언급 한 수정 사항이있었습니다. 1.2에서도 사용할 수 있습니다. –

+0

나는 모든 튜토리얼에서 그 인상을 얻지 못했다 - 나는 나의 html에 특별한 형태가 없다는 것을 알아야한다. 그것은 적절한 시간에'POST' 요청을 시작하는 jQuery 핸들러 일뿐입니다. 나는 전형적인 형태 안에'{% csrf_token %} '을 삽입하는 것이 좋다고 생각하지만, 당신이 그것을 가지고 있지 않을 때는 나에게 불분명하다. – haz

+0

Richard의 답변을 참조하십시오. –