CSRF令牌在一页上丢失或不正确

劳克王

在那里有一个主页,每个带有表单的页面都可以正常工作。
在我的起始页中添加了一个表单,并且在我的本地服务器中它可以正常工作。
但是,当我将其添加到生产服务器时,它不起作用。
它说的是CSRF-令牌丢失或不正确
但是我添加了令牌,并且它在所有其他页面上都有效。

我想念的是什么...?

看法

  @login_required
    def start(request) :
        libs = Library.objects.all();
        header = Header('Start');
        studies = None;
        source = None;
        if request.method == 'POST' :
            if 'Show_studie' in request.POST:
                studies = Study.objects.all;
            if 'Show_source' in request.POST:
                source = Source.objects.all;
        dctArgs = {
            'library_list': libs,
            'styles_dir': conf.styles_path,
            'header': header.html,
            'studies_list':studies,
            'source_list':source,
            'images_dir': conf.images_path,
            };
        return render_to_response('start.html', dctArgs, RequestContext(request));

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE></TITLE>
<link rel="stylesheet" type="text/css" href="{{styles_dir}}/common.css" />
<link rel="stylesheet" type="text/css" href="{{styles_dir}}/header.css" />
<link rel="stylesheet" type="text/css" href="{{styles_dir}}/Headerstyles.css" />
</HEAD>
<BODY>
{{header|safe}}
<h1></h1>
<table id="doc_tbl" class="data" cellspacing=0>
<tr>
  <th>Name</th>
  <th>Documents</th>
  <th>Export</th>
</tr>
{% for library in library_list %}
    <tr>
    <td><a href="/library_overview/{{library.id}}/">{{library.name}}</a></td>
    <td>{{library.source_set.all|length}}</td>
    <td><a href="/library_export/{{library.id}}/format/TS/">Andra till Jesper Export</a></td>
    </tr>
{% endfor %}
</table>
<h3>Messages</h3>
{{messages}}
</br>
<form id="form1" name="form1" method="post" action="/start/" enctype="multipart/form-data">
{% csrf_token %}
<fieldset style="width:300px; margin-left:5px;">
<legend> Show all </legend>
<input type="checkbox" name="Show_studie" value="Show Studie"> Studie
<input type="checkbox" name="Show_source" value="Show Source"> Source
</br>
</br>
<input type="submit" value="Show All">
</fieldset>
{% if studies_list %}
<h3> Studies </h3>
<table class="table1">
<thead>
<tr>
  <th></th>
  <th scope="col1" >Name</th>
  <th scope="col1" >Added by</th>
</tr>
</thead>
{% for study in studies_list %}
<tbody>
<tr>
<td>
  <a href="/define_study/{{study.id}}/edit/"><img class="icon" src="{{images_dir}}/edit-icon.png"/></a>
  &nbsp;
  <img onclick="javascript:return confirmDelete_name('Are you sure? The study and any associated information will be deleted.', {{study.id}}, 'delete_study');" class="icon" src="{{images_dir}}/delete-icon.png"/>
</td>
<td><a href="/define_study/{{study.id}}/">{{study.name}}</a></td>
<td>{{study.metadata_added_by_user.first_name}}&nbsp;{{study.metadata_added_by_user.last_name}}</td>
</tr>
{% endfor %}
</table>
{% endif %}
{% if source_list %}
<h3> Source </h3>
<table class="table1">
<thead>
<tr>
  <th></th>
  <th scope="col1" >Name</th>
  <th scope="col1" >Added by</th>
</tr>
</thead>
{% for source in source_list %}
<tbody>
<tr>
<td>
  <a href="/define_study/{{study.id}}/edit/"><img class="icon" src="{{images_dir}}/edit-icon.png"/></a>
  &nbsp;
  <img onclick="javascript:return confirmDelete_name('Are you sure? The study and any associated information will be deleted.', {{study.id}}, 'delete_study');" class="icon" src="{{images_dir}}/delete-icon.png"/>
</td>
<td><a href="/define_study/{{study.id}}/">{{source.name}}</a></td>
<td>{{source.metadata_added_by_user.first_name}}&nbsp;{{source.metadata_added_by_user.last_name}}</td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
</form> 
</BODY>
</HTML>

禁止(403)CSRF验证失败。请求中止。帮助给出失败原因:CSRF令牌丢失或不正确。

通常,当存在真正的跨站点请求伪造或
没有正确使用Django的CSRF机制时,可能会发生这种情况对于POST表单,您需要确保:
•视图函数使用RequestContext作为模板,而不是Context。
•在模板中,每个POST表单内部都有一个{%csrf_token%}模板标记,该标记以内部URL为目标。
•如果未使用CsrfViewMiddleware,则必须在
使用csrf_token模板标记的任何视图以及接受POST数据的视图上使用csrf_protect。您正在看到此页面的帮助部分,因为Django设置文件中的DEBUG = True。将其更改为False,将仅显示初始错误消息。
您可以使用CSRF_FAILURE_VIEW设置来自定义此页面。

设定值

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

在工作的页面上,我收到以下消息:

<django.contrib.messages.storage.fallback.FallbackStorage object at 0x03B7A270> 
Spc_555

尝试将视图包装在@requires_csrf_token装饰器中,如下所示:

from django.views.decorators.csrf import requires_csrf_token

@requires_csrf_token
@login_required
def start(request):
    ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

禁止(CSRF令牌丢失或不正确。)

来自分类Dev

CSRF失败:CSRF令牌丢失或不正确

来自分类Dev

Django 1.9:使用Stripe的CSRF令牌丢失或不正确

来自分类Dev

禁止(CSRF令牌丢失或不正确)Django错误

来自分类Dev

CSRF令牌丢失或在Django中不正确

来自分类Dev

Python 请求:CSRF 令牌丢失或不正确

来自分类Dev

Bootstrap Navbar仅在一页上显示不正确

来自分类Dev

详细信息:“ CSRF失败:CSRF令牌丢失或不正确。”

来自分类Dev

将django与邮递员{“ detail”:“ CSRF失败:CSRF令牌丢失或不正确。”}

来自分类Dev

“ CSRF失败:CSRF令牌丢失或不正确。” 在Django Rest中:UpdateModelMixin

来自分类Dev

Django 1.9.2 + jQuery + POST-错误403-CSRF令牌丢失或不正确

来自分类Dev

Django + VueJS:POST 403禁止-CSRF令牌丢失或不正确

来自分类Dev

使用Django和JS的“禁止(CSRF令牌丢失或不正确。):”

来自分类Dev

Django 服务器 403(CSRF 令牌丢失或不正确)

来自分类Dev

Django:使用 AJAX 上传文件:表单表示文件输入字段为空(或 CSRF 令牌丢失或不正确)

来自分类Dev

PHP返回上一页时丢失会话变量

来自分类Dev

没有jQuery的Django CSRF丢失或不正确的Ajax POST(Vanilla JavaScript)

来自分类Dev

一页上有两个CSRF令牌会引起问题吗?

来自分类Dev

一页上有两个CSRF令牌会引起问题吗?

来自分类Dev

Django CSRF cookie设置不正确

来自分类Dev

Rails 4 CSRF不正确

来自分类Dev

Awk标签页空间不正确

来自分类Dev

在 Ubuntu Server 16.04 LTS 上安装和使用 xRDP 后图标丢失/不正确

来自分类Dev

Symfony 3 - 除了一页之外,导航栏在每一页上都能正确显示?

来自分类Dev

上一页,下一页javascript

来自分类Dev

PHP MYSQL的上一页/下一页

来自分类Dev

一页上的jQuery更新另一页?

来自分类Dev

上一页,下一页javascript

来自分类Dev

WooCommerce在另一页上丢失了密码表格

Related 相关文章

  1. 1

    禁止(CSRF令牌丢失或不正确。)

  2. 2

    CSRF失败:CSRF令牌丢失或不正确

  3. 3

    Django 1.9:使用Stripe的CSRF令牌丢失或不正确

  4. 4

    禁止(CSRF令牌丢失或不正确)Django错误

  5. 5

    CSRF令牌丢失或在Django中不正确

  6. 6

    Python 请求:CSRF 令牌丢失或不正确

  7. 7

    Bootstrap Navbar仅在一页上显示不正确

  8. 8

    详细信息:“ CSRF失败:CSRF令牌丢失或不正确。”

  9. 9

    将django与邮递员{“ detail”:“ CSRF失败:CSRF令牌丢失或不正确。”}

  10. 10

    “ CSRF失败:CSRF令牌丢失或不正确。” 在Django Rest中:UpdateModelMixin

  11. 11

    Django 1.9.2 + jQuery + POST-错误403-CSRF令牌丢失或不正确

  12. 12

    Django + VueJS:POST 403禁止-CSRF令牌丢失或不正确

  13. 13

    使用Django和JS的“禁止(CSRF令牌丢失或不正确。):”

  14. 14

    Django 服务器 403(CSRF 令牌丢失或不正确)

  15. 15

    Django:使用 AJAX 上传文件:表单表示文件输入字段为空(或 CSRF 令牌丢失或不正确)

  16. 16

    PHP返回上一页时丢失会话变量

  17. 17

    没有jQuery的Django CSRF丢失或不正确的Ajax POST(Vanilla JavaScript)

  18. 18

    一页上有两个CSRF令牌会引起问题吗?

  19. 19

    一页上有两个CSRF令牌会引起问题吗?

  20. 20

    Django CSRF cookie设置不正确

  21. 21

    Rails 4 CSRF不正确

  22. 22

    Awk标签页空间不正确

  23. 23

    在 Ubuntu Server 16.04 LTS 上安装和使用 xRDP 后图标丢失/不正确

  24. 24

    Symfony 3 - 除了一页之外,导航栏在每一页上都能正确显示?

  25. 25

    上一页,下一页javascript

  26. 26

    PHP MYSQL的上一页/下一页

  27. 27

    一页上的jQuery更新另一页?

  28. 28

    上一页,下一页javascript

  29. 29

    WooCommerce在另一页上丢失了密码表格

热门标签

归档