2017-07-26 70 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/的時候,但只針對一個特定的人(每個participant是每個帳戶唯一的,所以我知道它的只有一個人,多次有這個問題,它發生。在500+其他participant有沒有這樣的。問題/錯誤

這個錯誤是什麼意思,什麼是可能導致它,我可以解決這個問題

+0

海米切爾,你能解決這個問題嗎?我面臨這樣的問題,但無法確定原因。這可能是因爲HTTPS/SSL問題? –

+0

@QCaron。嘿。我沒有有目的地解決它。我在應用程序的另一面工作了一段時間,然後就消失了。我想這與我的工作有關,如果我記得正確的CSRF令牌。也許這可以幫助。 https://github.com/Tivix/django-rest-auth/issues/164。如果你確實弄清楚了,請將其作爲答案發布。祝你好運。 –

+0

在我的情況下,我遇到了一個由支付平臺調用的POST Web鉤子的問題。在生產中,使用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裝飾器來完成此操作。儘管如此,當你絕對需要避免潛在的安全漏洞時,你只應該這樣做。