1. 程式人生 > >表單 CSRF verification failed 報錯的解決

表單 CSRF verification failed 報錯的解決

如果你第一次用表單提交資料,很可能會遇到這麼一個報錯:CSRF verification failed. Request aborted.

這個問題如何解決呢?

1. 在表單里加上{% csrf_token %}。

根據提示 In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. 我們可以在表單里加上 csrf_token:

1 <input type="hidden" name="csrfmiddlewaretoken"
 value="{% csrf_token %}"/>

2. 在setting.py 中設定檔案如下:

01 MIDDLEWARE_CLASSES = (
02 'django.middleware.common.CommonMiddleware',
03 'django.contrib.sessions.middleware.SessionMiddleware',
04 'django.middleware.csrf.CsrfViewMiddleware',
05 'django.contrib.auth.middleware.AuthenticationMiddleware',
06 'django.contrib.messages.middleware.MessageMiddleware',
07 # Uncomment the next line for simple clickjacking protection:
08 # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
09 #'django.middleware.csrf.CsrfResponseMiddleware',
10 )

一般來說是不用改的,確保你的 setting 正確就行。

3. 最後一步:在view檔案中加入裝飾器@csrf_exempt,同時使用RequestContext代替Context。

1 from django.views.decorators.csrf import csrf_exempt
2
3 @csrf_exempt
4 def nowamagic(request):
5 return render_to_response('test.html', context_instance=RequestContext(request))

不再報錯了。因為 Django 之所以引進 CSRF 是為了避免 Cross Site Request Forgeries 攻擊,而上面的解決方法恰好禁止掉這個 Django 的功能。所以日後還得仔細研究下,在不禁掉這個功能的前提下成功的提交表單。

相關推薦

CSRF verification failed 解決

如果你第一次用表單提交資料,很可能會遇到這麼一個報錯:CSRF verification failed. Request aborted. 這個問題如何解決呢? 1. 在表單里加上{% csrf_token %}。 根據提示 In the template, the

ORA-09817: Write to audit file failed 解決辦法

ora-09817 archivelog 上午開虛擬機登錄數據庫的時候,突然就報錯:ORA-09817: Write to audit file failed寫入失敗?不會是磁盤滿了吧?當然,no space left on device提示的很明顯,df -h 查詢一下,果然100%了:馬上搜羅下o

Django 使用form提交數據: Forbidden (403)

運行 ges info auth 技術 sage ons 提交數據 smi Issue: 使用from表單submit之後報錯入下: Action: 把django工程文件的setting.py中的django.middleware.csrf.CsrfViewMi

[ELK] ERROR: [2] bootstrap checks failed解決方法

ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2]

django種post出現CSRF verification failed( CSRF驗證失敗 ) 的兩種解決方案

現象 表單介面如下: 在點選提交之後,出現如下錯誤頁面: HTML的程式碼如下: contact_form.html <!DOCTYPE HTML PUBLIC > <html> <head> <title&g

SSH連線失敗,Host key verification failed——原理和解決方法

##原因,當時用ssh命令遠端連線sshd服務的時候。連線過程是需要認證的,以保證連線的安全和資料傳輸的加密。 客戶端ssh連線服務端sshd時,服務端根據自己的私鑰生成公鑰 (身份驗證使用公鑰加密演算法實現——公鑰加密私鑰解密),並傳送給客戶端ssh。 客戶端ssh命令接收服務端的公鑰,(第一次連線時,連線

Django提交時遇到403錯誤:CSRF verification failed

在學習Django框架提交表單時,遇到了403錯誤,詳細資訊如下: Forbidden (403) CSRF verification failed. Request aborted. You are seeing this message because this si

proc之建添加數據解決

comm test begin 想要 sele beijing lec pla dep 需求是:我想要創建一個存儲過程,在這個存儲過程裏要完成兩件事情,一要創建一個表,二要在這個表裏添加數據; create or replace procedure ctab as i n

HP DL380G9 iLO降級Degrated及存儲失敗storage Failed如何解決

store ace 溝通 回復 it基礎 comm cat ali 關機 HP DL380G9 iLO降級(Degrated)及存儲失敗(storage Failed)報錯如何處理? ?Lander Zhang 專註外企按需IT基礎架構運維服務,IT Helpdesk 實戰

Failed to execute 'toDataURL' on 'HTMLCanvasElement,在canvas.toDataURL()執行時候解決方案

from info long allow 條件 star The cross can 添加跨域條件 crossorigin="anonymous" 【Redirect at origin ‘http://xxx.xx.com‘ has been block

解決一個分之後出現的查詢問題

解決方法 出現 查詢 無法 nat 分表 lang table iss 做了分表之後,原先的底層sql語句查詢開始出現問題。 sql語句:select xxx from table a LEFT JOIN table b where a.列x = #{參數名} 報了 C

python爬蟲訪問https網站解決方案ERROR:ssl_client_socket_impl.cc(1098)] handshake failed

報錯資訊: [3488:1356:0512/211222.342:ERROR:ssl_client_socket_impl.cc(1098)] handshake failed; returned -1, SSL error code 1, net_error -101 Chrome瀏覽器解決方

CentOS7安裝MySQL,解決Failed to start mysqld.service: Unit not found CentOS7安裝MySQL,解決Failed to start mysqld.service: Unit not found

當輸入命令 ~]# systemctl start mysql.service 要啟動MySQL資料庫是卻是這樣的提示 Failed to start mysqld.service: Unit not found 解決方法如下:   首先需要安裝mariadb-serv

YUM解決:rpmdb open failed

repo onf main failed emp The ultra edi ril yum安裝某個軟件的時候,出現報錯 [root@aws ~]# yum install -y zabbix-agent rpmdb: unable to join the environm

使用WebStorm 解決方法!!Unable to save settings: Failed to save settings (內含註冊碼破解碼)

Unable to save settings: Failed to save settings. Please restart WebStorm。 Unable to save settings: Failed to save settings. Please resta

vue.runtime.esm.js:593 [Vue warn]: Invalid prop: custom validator check failed for prop "value".解決

在uni中使用 picker元件,一直報錯 vue.runtime.esm.js:593 [Vue warn]: Invalid prop: custom validator check failed for prop "value" 表示在picker中有關於value的錯誤,但是一直沒找到value

Tomcat啟動解決之 Server Tomcat v8.5 Server at localhost failed to start.

Server Tomcat v8.5 Server at localhost failed to start. 一、排查思路 最直接也是最有效的辦法:看console控制檯 二、具體解決 如上圖,異常資訊中會指明報錯原因,一般是以下幾種情況 Tomc

Failed to resolve: com.android.support:appcompat-v7:27.+ 解決方法

app module build.gradle dependencies中預設配置如下: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile(

ORA-01653解決方法(空間使用率過高處理)

建立oracle表時遇見以下報錯:ORA-01653: unable to extend table JT_AUDIT.CFG_AUSYS_AUDIT_PROC by 128 in tablespace AUDIT_TABLESPACE從報錯資訊來看,應該是oracle表空間

[Cassandra] Cassandra3.10建立時“Column family ID mismatch”解決

  記一次cassandra建立表時“Column family ID mismatch”報錯解決 環境:CentOS6.7 + JDK8 + Cassandra3.10   問題: Cassandra建立表時報錯: [email prote