2014-11-23 65 views
3

我使用Django和HTML我有重命名csrfmiddlewaretoken

<input type="hidden" name="csrfmiddlewaretoken" value="..."> 

如何重命名csrfmiddlewaretoken?我不想,用戶可以知道,該網站使用Django。

我在Django中找不到任何東西settings,有沒有辦法做到這一點?

謝謝!

+5

不在,Django源代碼中的字符串是[硬編碼](https://github.com/django/django/blob/1101467ce0756272a54f4c7bc65c4c335a94111b/django/template/defaulttags.py#L59)。如果你修補它,[修補兩個地方](https://github.com/django/django/blob/731f313d604a6cc141f36d8a1ba9a75790c70154/django/middleware/csrf.py#L171)。 – 2014-11-23 09:53:38

+0

用戶知道您在使用Django時出現了什麼問題?只要你做的一切正確... – rnevius 2014-11-23 10:35:13

回答

1

這是字符串被硬編碼在的Django /中間件/ csrf.py

 # Check non-cookie token for match. 
     request_csrf_token = "" 
     if request.method == "POST": 
      request_csrf_token = request.POST.get('csrfmiddlewaretoken', '') 

     if request_csrf_token == "": 
      # Fall back to X-CSRFToken, to make things easier for AJAX, 
      # and possible for PUT/DELETE. 
      request_csrf_token = request.META.get('HTTP_X_CSRFTOKEN', '') 

但對於你的存在單向的。你可以添加你的js函數,它會將HTTP_X_CSRFTOKEN添加到你的POST請求中。

查找更多詳細信息in the docs