2017-07-26 3 views
1

私は正常に動作しているようです。しかし、今、私はこのエラーを最初の時間ログに見ました。エラーはどういう意味ですか? : "禁止されています(Refererの確認に失敗しました - Refererはありません):"

Forbidden (Referer checking failed - no Referer.): /pointlocations/ 
[pid: 4143|app: 0|req: 148/295] 104.176.70.209() {48 vars in 1043 bytes} [Wed Jul 26 19:49:35 2017] POST /pointlocations/?participant=A2TYLR23CHRULH&assignmentId=3P4MQ7TPPYF65ANAUBF8A3B38A0BB6 => generated 2737 bytes in 2 msecs (HTTP/1.1 403) 1 headers in 51 bytes (1 switches on core 0) 

それは/pointlocations/に投稿するときに起こりますが、1人の特定の人のために(各participantは、アカウントごとに一意であるので、私はそれが繰り返しこの問題を抱えて、一人だけ知っている。participant他500+以上はそのようなを持っていませんでした。?問題/エラー

は、このエラーが何を意味するのか、何がそう、それを引き起こしていると私はこの問題を解決することができ

+0

Hoi Mitchell、これを解決できましたか?私はこのような問題に直面していますが、理由を特定できません。 HTTPS/SSLの問題が原因である可能性がありますか? –

+0

@ QCaron。ねえ。私は意図的にそれを解決しませんでした。私はしばらくの間、アプリケーションの別の側面で作業していて、それはなくなった。私はそれが私がCSRFトークンを正しく思い出すかどうか、私が取り組んでいたことに関係していると思います。多分これが助けになるかもしれない。 https://github.com/Tivix/django-rest-auth/issues/164。あなたがそれを理解したら、答えとして投稿してください。がんばろう。 –

+0

私の場合は、支払いプラットフォームから呼び出されたPOSTウェブフックでこの問題が発生しました。プロダクションでは、HTTPSを使用して、あなたと同じエラーが発生しました。ここでcsrf_exemptデコレータを使用する必要があるかもしれません。あなたの意見は第三者から呼び出されていますか?他のサーバー/ウェブサイトによって –

答えて

1

TLDR:あなたのビューのcsrf_exemptデコレータを使用してみてください:

from django.views.decorators.csrf import csrf_exempt 

@csrf_exempt 
def my_webhook(request): 
    # Do some stuffs... 

    # Return an HHTPResponse as Django expects a response from the view 
    return HttpResponse(status=200) 

もっとコンテキスト:

決済ソリューションであるサードパーティによって呼び出されたウェブフックに取り組んでいる間、私は同様の問題に直面しました。そのWebフックのDjangoビューは、支払いステータスが変更されるたびに(たとえば、「オープン」から「有料」に変わる)通知するために第三者から呼び出されます。

支払いプラットフォームでは、リクエストPOSTで支払いIDのみが提供されるため、CSRFチェックは実行しないでください。 Djangoはcsrf_exemptデコレータでこれを行うことができます。しかし、潜在的なセキュリティ上の欠陥を避けるために絶対に必要なときにのみこれを行うべきです。

関連する問題