python - django request请求问题求助

 手机用户2502861125 发布于 2022-10-27 15:14

urls.py

from django.conf.urls import url
from django.contrib import admin
from blog import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.index),
    url(r'^abc$',views.handler),
]



views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def index(request):
    return render(request,"index.html")


def handler(request):
    return HttpResponse("

name:

" + request.POST['username'])



index.html


    
        
        index page
    
    
       


我在谷歌浏览器下点击这个提交后出现了

我又直接打开abc网站 出现了



请问这是什么问题啊 要怎么解决啊 ?
4 个回答
  • 有个简单点的方法 把settings文件中csrf的配置注释掉。。

    2022-10-28 13:07 回答
  • <button id="btn">提交</button> 写成<input type="submit" value="submit">, 当然{% csrf_token %}不能少

    2022-10-28 13:09 回答
  • 在form中添加{{ csrf_token }}后再试试,form如下:
    <form action="{% url 'home_page_show' %}" method="POST">
        {% csrf_token %}
        <input type="text" name="username">
        <button id="btn">提交</button>
    </form>
    2022-10-28 13:10 回答
  • 在 Django 中, 使用 post 的時候很可能會出現以下錯誤:

    Forbidden(403):
    CSRF verification failed. Request aborted.
    Reason given for failure:
        CSRF token missing or incorrect.

    這是因為 Django 幫我們啟動了 CSRF攻擊 的防護,CSRF(cross-site request forgery) 是惡意的跨站請求或偽裝使用者的攻擊,攻擊者會欺騙用戶的瀏覽器去訪問一個認證過的網站並且執行一些惡意的操作。由於用戶的瀏覽器已經被該網站認證過了,所以該網站會放心的讓這些操作被執行(即便這些操作並非該網站要求的或是不是用戶自願的)。

    所以我們的伺服器需要一些有保護的措施。常見的一種防護手段,就是使用一個伺服器產生的亂數 token,夾帶在送給客戶端的表單中,當客戶端送回表單時,伺服器檢查這個 token 是不是自己發出,便可以防止攻擊。

    由於在 settings.py 檔中的 MIDDLEWARE_CLASSES 中有預設的 'django.middleware.csrf.CsrfViewMiddleware',所以 Django 在這裡便會要求 CSRF token 驗證,為了讓我們的網站更安全,我們還是照著遊戲規則一步一步來吧!

    在html的<form>中加入{% csrf_token %}如下:

    ...
             <form action="" method="post"> {% csrf_token %}
    ...

    就可以解決問題了


    我回答過的問題: Python-QA

    2022-10-28 13:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有