2017-02-04 3 views
0

저는 장고보기에 데이터를 게시하는 데 사용하는 (PHP로 코딩 된) WordPress 사이트가 있습니다. 이 코드csrf_exempt 데코레이터가 면제되지 않았습니다.

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_REFERER, 'https://mydjangosite.com/blah/blah2/'); 

URL이 위에서 내가

from django.views.decorators.csrf import csrf_exempt 

@csrf_exempt 
@api_wrapper 
def add_referral_api(request, status_slug): 

그러나이 경우에 교차 사이트 게시를 허용 할 때문에 @csrf_exempt 장식을 사용하는 이동 기능으로 게시, 난 여전히이 나타납니다 내 로그의 오류

[03/Feb/2017 18:17:48] WARNING [django.request:177] Forbidden (CSRF cookie not set.): 

신뢰할 수있는 사이트간에 이러한 사이트 간 게시를 허용하려면 어떻게해야합니까?

EDIT 내 미들웨어 클래스도 마찬가지입니다. 이 사이트는 ssl 인증서를 사용하여 가치가 있는지 확인합니다. 추가 보안으로 인해 csrf_exemption 데코레이터가 작동하지 않을 것으로 예상됩니다. 아직도, 나는 어떻게 든이 한 사이트 (내 WP 사이트)가 게시물 데이터를받을 수 있다고 말할 수있게하고 싶습니다.

MIDDLEWARE_CLASSES = (
    # This middleware is for ensuring that all pages use https 
    #'djangosecure.middleware.SecurityMiddleware', 
    'django.middleware.gzip.GZipMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'common.middleware.XsSharing', 
    'impersonate.middleware.ImpersonateMiddleware', 
    'referrals.middleware.ReferralMiddleware', 
) 
+0

"api_wrapper"의 기능은 무엇입니까? 이보기가 맞았는지 확신합니까? –

+0

예. 그것이하는 일은 정보를 게시하고 데이터베이스에 레코드를 추가하는 것입니다. –

+0

'CSRF_COOKIE_SECURE' 설정을'True'로 설정 했습니까? –

답변

0

매트와 채팅 후, 우리는 @api_wrapper 장식을 할 범인을 발견 (그래서, 내 최초의 직관이 옳았다)는 @csrf_exempt 쓸모없는 렌더링의 @ensure_csrf_token 장식을 부르고있다. PHP 호출은 Bad Request (400)을주었습니다. 그러나이 질문의 범위를 벗어납니다.