董付国老师Python系列教材(累计印刷超过220次)推荐与选用参考
3000道Python习题免费在线练习(已更新至7000道题)
==============
跨站请求伪造CSRF(Cross-Site Request Forgery)是一种严重的安全威胁,其攻击过程一般是这样的:用户成功登录网站A,然后在没有退出登录的情况下被攻击者诱导直接访问了恶意网站B,网站B中恰好有代码向网站A发起请求。由于用户已经在网站A中登录,浏览器会自动附带用户在网站A中的认证信息,如果网站A中没有相应的防护措施,会认为是用户自愿发起的请求,从而执行攻击者预设的操作。
防范CSRF攻击有很多方式,例如随机令牌、HTTP请求头部的Referer字段、自定义头部字段等。另外,扩展库Django内置了CSRF防护,Flask通过Flask-WTF提供了该功能。本文以Flask为例进行介绍。
服务端渲染前端页面时生成随机令牌并同时写入session和前端页面,用户提交表单时服务端检查页面中的令牌和session中的令牌是否一致,不一致则拒绝执行后面的操作。用户在没有退出登录的情况下从网站A跳转到网站B又在网站B中向网站A发起请求时,虽然可以保留session信息,但在网站B的页面中没有令牌,无法通过网站A的验证。
参考代码:
把代码保存为文件6csrf_bug.py,然后在命令提示符环境执行下面的命令运行网站,
flask --app 6csrf_bug run --host 127.0.0.1 --port 80
编写下面的程序,使用标准库urllib模拟向上面的网页提交数据发表评论,
运行结果如下,
修改程序文件6_csrf_bug.py中的代码,删除关于csrf随机令牌检测的代码,重新运行网站,然后使用上面的程序模拟发表评论,效果如下,可以在站外直接发表评论。
安装扩展库Flask-WTF,继续修改网站程序如下,
重新运行网站,重新运行攻击测试程序,结果如下,
===============
推荐教材:董付国编著.Python程序设计(第4版·微课版·在线学习软件版),ISBN:978-7-302-66379-9,清华大学出版社,2024年6月出版,2025年6月第4次印刷(本书前3版印刷34次),定价69.8元,山东省普通高等教育一流教材,国家级特色专业、国家级一流本科专业“计算机科学与技术”配套教材,山东省一流本科课程“Python应用开发”配套教材,2019~2024年清华大学出版社畅销教材
图书内容:154个例题、140节微课视频(含课程思政),内容涉及Python基础、Office文件操作、GUI、图像处理、计算机图形学、音视频处理、数据分析与科学计算可视化、密码学、数据库、网络编程、多线程与多进程、逆向工程、Windows系统编程与安卓编程等领域。
页数:372
适用专业:计算机类所有专业
适用层次:研究生/本科/专科
配套资源:教学大纲、电子教案、课件、源码、数据文件、习题答案、题库,在线练习软件,支持课程思政,支持工程教育认证
适用学时:64/96/128
===============
温馨提示:
关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过230次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1400篇原创技术文章;发送消息“会议”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过700节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习6115道客观题和906道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。