深入理解csrf(flask例項)

2021-10-14 00:20:08 字數 1582 閱讀 8639

看了好多csrf的介紹,大概意思是 在a**登入了,儲存了cookie,在此期間訪問了b**,b站裡面使用可以跨域的標籤比如src,來直接呼叫a站重要介面(例如轉賬)直接完成轉賬

之前一直不理解,為什麼訪問**b的時候 會帶著a的登入資訊(cookie)

後來想通了,

flask實驗如下

危險**b flask模擬程式如下  啟動在我自己的ip(10.20.2.3)下

# 此為模擬危險**b

from flask import flask, make_response, request, render_template

def index():

print('index')

return render_template('./b.html')

if __name__ == '__main__':

簡單html如下  ,主要**為

from flask import flask, make_response, request

def login():

res = make_response('suc')

res.set_cookie('key1', 'value1')

res.set_cookie('key2', 'value2')

user_name = 'user'

password = 'pass'

return res

def account():

if request.cookies.get('key1') == 'value1':

print('轉賬10000')

return '轉賬10000'

else:

print('未登入')

return '未登入'

這裡我用127.0.0.1 和自己ip(10.20.2.3) 來作為不同域,不會共享cookie

首先訪問a**顯示未登入

訪問 獲取cookie

再次訪問

因為有cookie 所以成功通過認證

這時訪問危險**

可以看到 有cookie,成功通過了認證,它利用了原**的cookie

這樣就完成了一次攻擊 

從例項中深入理解fork

原共有17個fork例項,此日誌從中挑選部分例項進行學習,由簡入難 include include include include include include intmain int argc,char ar return0 總覽void fork1 else printf bye from p...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...