2014-11-23 59 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