欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Django框架防御CSRF攻擊的方法分析

 更新時間:2019年10月18日 11:33:58   作者:houyanhua1  
這篇文章主要介紹了Python Django框架防御CSRF攻擊的方法,結(jié)合實例形式分析了Python Django框架防御CSRF攻擊的原理、配置方法與使用技巧,需要的朋友可以參考下

本文實例講述了Python Django框架防御CSRF攻擊的方法。分享給大家供大家參考,具體如下:

項目名/settings.py(項目配置,csrf中間件配置):

MIDDLEWARE_CLASSES = (
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  'django.middleware.csrf.CsrfViewMiddleware', # django默認啟用了csrf防護,只針對post表單提交進行防護。
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
  'django.middleware.security.SecurityMiddleware',
)

templates/應(yīng)用名/demo.html(模板文件,csrf防護):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>修改密碼頁面</title>
</head>
<body>
<form method="post" action="/change_pwd_action">
  {% csrf_token %} {# csrf_token是Django提供的,用于csrf防護。該變量會替換成一個表單隱藏域。 #}
  新密碼:<input type="password" name="pwd">
  <input type="submit" value="確認修改">
</form>
</body>
</html>

django防止csrf攻擊的方式:

1) 默認打開csrf中間件。

2) 表單post提交數(shù)據(jù)時加上{% csrf_token %}標簽。

防御原理:

  1. 渲染模板文件時在頁面生成一個名字叫做csrfmiddlewaretoken的隱藏域。
  2. 服務(wù)器交給瀏覽器保存一個名字為csrftoken的cookie信息。
  3. 提交表單時,兩個值都會發(fā)給服務(wù)器,服務(wù)器進行比對,如果一樣,則csrf驗證通過,否則失敗。

希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

最新評論