[英]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站點可以服務的主機/域名的strings
或regular expressions
列表。 您需要使用令牌,JWT或任何其他身份驗證方法來防止使用API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.