CSRF
目前累計(jì)服務(wù)客戶成百上千家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶提供成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。CSRF
全拼為Cross Site Request Forgery
,譯為跨站請(qǐng)求偽造。
CSRF
指攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求。
包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號(hào),甚至于購(gòu)買商品,虛擬貨幣轉(zhuǎn)賬......
造成的問(wèn)題:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。
CSRF攻擊示意圖
客戶端訪問(wèn)服務(wù)器時(shí)沒(méi)有同服務(wù)器做安全驗(yàn)證
防止 CSRF
1.在客戶端向后端請(qǐng)求界面數(shù)據(jù)的時(shí)候,后端會(huì)往響應(yīng)中的 cookie 中設(shè)置 csrf_token 的值
2.在 Form 表單中添加一個(gè)隱藏的的字段,值也是 csrf_token
3.在用戶點(diǎn)擊提交的時(shí)候,會(huì)帶上這兩個(gè)值向后臺(tái)發(fā)起請(qǐng)求
4.后端接受到請(qǐng)求,以會(huì)以下幾件事件: •從 cookie中取出 csrf_token
5.如果比較之后兩值一樣,那么代表是正常的請(qǐng)求,如果沒(méi)取到或者比較不一樣,代表不是正常的請(qǐng)求,不執(zhí)行下一步操作
代碼演示
未進(jìn)行 csrf 校驗(yàn)的 WebA
后端代碼實(shí)現(xiàn)
from flask import Flask, render_template, make_response from flask import redirect from flask import request from flask import url_for app = Flask(__name__) @app.route('/', methods=["POST", "GET"]) def index(): if request.method == "POST": # 取到表單中提交上來(lái)的參數(shù) username = request.form.get("username") password = request.form.get("password") if not all([username, password]): print('參數(shù)錯(cuò)誤') else: print(username, password) if username == 'laowang' and password == '1234': # 狀態(tài)保持,設(shè)置用戶名到cookie中表示登錄成功 response = redirect(url_for('transfer')) response.set_cookie('username', username) return response else: print('密碼錯(cuò)誤') return render_template('temp_login.html') @app.route('/transfer', methods=["POST", "GET"]) def transfer(): # 從cookie中取到用戶名 username = request.cookies.get('username', None) # 如果沒(méi)有取到,代表沒(méi)有登錄 if not username: return redirect(url_for('index')) if request.method == "POST": to_account = request.form.get("to_account") money = request.form.get("money") print('假裝執(zhí)行轉(zhuǎn)操作,將當(dāng)前登錄用戶的錢轉(zhuǎn)賬到指定賬戶') return '轉(zhuǎn)賬 %s 元到 %s 成功' % (money, to_account) # 渲染轉(zhuǎn)換頁(yè)面 response = make_response(render_template('temp_transfer.html')) return response if __name__ == '__main__': app.run(debug=True, port=9000)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站欄目:Flask模擬實(shí)現(xiàn)CSRF攻擊的方法-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://m.rwnh.cn/article26/djiejg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容