簡體   English   中英

Django REST api調用和allowed_hosts

[英]Django REST api calls and allowed_hosts

我正在嘗試在Django中實現RESTful API,以便任何IP都可以查詢端點。 但是,如果要設置ALLOWED_HOSTS = ['*'] ,我會擔心頭攻擊。

我讀了一個答案, 為什么Django會拋出錯誤“ /的DisallowedHost”? 這表明api調用應該響應,而不是服務器響應。

我不完全理解它們的含義或實現方式,而是在尋找建議。

最終,我想知道如何進行django阻止的api調用,因為它不在ALLOWED_HOSTS中?

ALLOWED_HOSTS與您的API調用沒有任何關系。 這是服務器應響應的主機名列表,而不是響應

您遇到的問題與ALLOWED_HOSTS無關,與CSRF保護無關。 您有兩個選擇。 您可以使用以下任一方法在頁面上禁用跨站點請求偽造保護

@method_decorator(csrf_exempt, name=dispatch)

在django> = 1.9中位於類的上方,或在django的早期版本中裝飾分派方法,例如:

class myView(View):
    @method_decorator(csrf_exempt)
    def dispatch(self, request, *args, **kwargs):
        return super(myView, self).dispatch(request, *args, **kwargs)

但是,如果您擔心誰可以訪問,則需要研究其他身份驗證方法,例如基於令牌的身份驗證,以便只有傳遞正確令牌的站點才能獲得訪問權限。

ALLOWED_HOSTS是表示此Django站點可以服務的主機/域名的stringsregular expressions列表。 您需要使用令牌,JWT或任何其他身份驗證方法來防止使用API​​。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM