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),
]
# -*- 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("<p>name:</p>" + request.POST['username'])
<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
<title>index page</title>
</head>
<body>
<form action="abc" method="POST">
<input type="text" name="username">
<button id="btn">提交</button>
</form>
</body>
</html>
我在谷歌浏览器下点击这个提交后出现了
我又直接打开abc网站 出现了
Dalam Django, ralat berikut mungkin berlaku apabila menggunakan siaran:
Ini kerana Django membantu kami mengaktifkan perlindungan terhadap serangan CSRF CSRF (pemalsuan permintaan merentas tapak) ialah permintaan merentas tapak berniat jahat atau serangan yang menyamarkan pengguna pelayan penyemakan imbas pengguna untuk mengakses tapak web yang disahkan dan melakukan beberapa operasi berniat jahat. Memandangkan penyemak imbas pengguna telah disahkan oleh tapak web, tapak web akan membenarkan operasi ini dilakukan dengan yakin (walaupun operasi ini tidak diperlukan oleh tapak web atau bukan secara sukarela oleh pengguna).
Jadi pelayan kami memerlukan beberapa langkah perlindungan. Kaedah perlindungan biasa ialah menggunakan token rawak yang dijana oleh pelayan dan memasukkannya ke dalam borang yang dihantar kepada klien Apabila klien menghantar semula borang, pelayan menyemak sama ada token itu dikeluarkan dengan sendirinya, dengan itu menghalang serangan.
Memandangkan terdapat
settings.py
lalai dalamMIDDLEWARE_CLASSES
dalam fail'django.middleware.csrf.CsrfViewMiddleware'
, Django akan memerlukan pengesahan token CSRF di sini Untuk menjadikan tapak web kami lebih selamat, kami masih mengikut peraturan permainan langkah demi langkah Ayuh!Tambah
<form>
pada{% csrf_token %}
dalam html seperti berikut:Ini akan menyelesaikan masalah
Soalan yang saya jawab: Python-QA
<button id="btn">Serah</button> ditulis sebagai <input type="submit" value="submit">, sudah tentu {% csrf_token %} tidak boleh hilang
Terdapat cara yang lebih mudah untuk mengulas konfigurasi csrf dalam fail tetapan. .