Web框架——Flask系列之CSRFToken详解(四)
生活随笔
收集整理的這篇文章主要介紹了
Web框架——Flask系列之CSRFToken详解(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CSRF(理解)
一. 什么是CSRFToken?
- CSRF全拼為Cross Site Request Forgery,譯為跨站請求偽造。
- CSRF指攻擊者盜用了你的身份,以你的名義發送惡意請求。
包括:以你名義發送郵件,發消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉賬… - 造成的問題:個人隱私泄露以及財產安全。
二.CSRF攻擊示意圖
- 客戶端訪問服務器時沒有同服務器做安全驗證
三.防止CSRF攻擊
- 從 cookie中取出 csrf_token
- 從 表單數據中取出來隱藏的 csrf_token 的值
- 進行對比
四.csrf校驗機制作用域代碼
- from flask_wtf.csrf import CSRFProtect
- CSRFProtect(app)
- 對應用程序app中的post,put,dispatch,delete, 4種類型的請求做保護,因為這些類型的請求是用于更改服務器的資源
- 當以上面4種類型的請求,操作服務器資源的時候,會校驗cookie中的csrf_token, 表單中的csrf_token信息
- 只有上面二者的值相等的時候,那么校驗則通過,可以操作服務器資源
提示: csrf_token值的生成需要加密, 所以設置SECRET_KEY
代碼展示
后端代碼:
前端代碼,file01csrf.html文件:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <form action="/add_data" method="post">{#設置隱藏的csrf_token,使用了CSRFProtect保護app之后,即可使用csrf_token()方法#}<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><label>用戶名:</label> <input type="text" name="username"><br><label>密碼:</label> <input type="text" name="username"><br><input type="submit" value="登陸"> </form> </body> </html>總結
以上是生活随笔為你收集整理的Web框架——Flask系列之CSRFToken详解(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redux学习(一)——Redux的使用
- 下一篇: 十一、案例:TabBar的封装