Flask 專案中解決csrf攻擊
首先裝個庫吧,命令如下:
pip install flask_wtf
在 Flask 中, Flask-wtf 擴充套件有一套完善的 csrf 防護體系,對於我們開發者來說,使用起來非常簡單
- 設定應用程式的 secret_key,用於加密生成的 csrf_token 的值
# 1. session加密的時候已經配置過了.如果沒有在配置項中設定,則如下:
app.secret_key = "#此處可以寫隨機字串#"
# 2. 也可以寫在配置類中。
class Config(object):
DEBUG = True
SECRET_KEY = "dsad32DASSLD*13%^32"
"""載入配置"""
app.config.from_object(Config)
- 匯入 flask_wtf.csrf 中的 CSRFProtect 類,進行初始化,並在初始化的時候關聯 app
from flask.ext.wtf import CSRFProtect
CSRFProtect(app)
- 在表單中使用 CSRF 令牌:
<form method="post" action="/">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
</form>
檢視程式碼:
from flask import Flask, render_template, request
from flask_wtf import CSRFProtect
app = Flask(__name__, template_folder='templates')
csrf = CSRFProtect(app)
app.config["SECRET_KEY"] = '223223qwq'
@app.route('/')
def index():
data = {}
return render_template('index5.html', **data)
@app.route('/login', methods=["POST"])
def login():
print(request.form)
# ImmutableMultiDict([('csrf_token', 'IjcwYWE0YjU3MmY5OWU4MzczNTM2MWJiNjc4NTQ0NjE4MTA2MzliMjAi.X7pChg.dH_NdAfCArZLJSPL8RMrJGc2Lqs'), ('username', ''), ('password', '')])
return 'ok'
if __name__ == '__main__':
app.run(debug=True)
模板程式碼:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="{{ url_for('login') }}" method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" >
賬號: <input type="text" name="username" value=""><br><br>
密碼: <input type="password" name="password" value=""><br><br>
<input type="submit" value="登入">
</form>
</body>
</html>
相關文章
- CSRF 攻擊 及其 Laravel 解決Laravel
- CSRF攻擊
- CSRF 攻擊
- 什麼是CSRF攻擊?如何防禦CSRF攻擊?
- csrf攻擊例項
- csrf攻擊與防範
- CSRF 攻擊與防禦
- CSRF 攻擊深入淺出
- CSRF攻擊與防禦
- 什麼是CSRF攻擊?
- XSS攻擊和CSRF攻擊有什麼區別?
- CSRF攻擊與Django防範Django
- 前端實現csrf防止攻擊前端
- CSRF攻擊原理及預防手段
- Java 安全之:csrf攻擊總結Java
- 08 CSRF偽造請求攻擊
- 前端面試查漏補缺--(七) XSS攻擊與CSRF攻擊前端面試
- WEB安全入門:如何防止 CSRF 攻擊?Web
- Jenkins如何使用CrumbIssuer防禦CSRF攻擊Jenkins
- flask中的csrf防禦機制Flask
- 讓你徹底瞭解SQL隱碼攻擊、XSS和CSRFSQL
- 懂你網路系列10之網路安全中的CSRF攻擊
- CSRF攻擊是什麼並且如何防止
- XSS 與 CSRF 攻擊——有什麼區別?
- 【技術乾貨】XSS攻擊、CSRF攻擊基本概念及防範方法
- 防止web專案中的SQL隱碼攻擊MUHEWebSQL
- Django中如何防範CSRF跨站點請求偽造攻擊Django
- CSRF(Cross Site Request Forgery)攻擊原理和防禦ROS
- 總結 XSS 與 CSRF 兩種跨站攻擊
- 前端安全系列之二:如何防止CSRF攻擊?前端
- 建議收藏!XSS與CSRF攻擊防範措施
- CSRF攻擊是什麼?防範手段有哪些?
- 關於使用Pycharm新建flask專案 from flask 紅色波浪線解決辦法PyCharmFlask
- cc攻擊防禦解決方法
- 瞭解cc攻擊才能對應解決
- 網站漏洞檢測工具對CSRF攻擊詳情網站
- flask 專案拆分Flask
- 針對TP-LINK的CSRF攻擊來劫持DNS案例DNS