点击按钮弹出iframe_WEB安全(四) :CSRF与点击劫持

74df310edf4098bd5a7503e0fecad1cd.png

跨站点请求伪造

CSRF是跨站点请求伪造,它的请求有两个关键点,跨站点的请求与请求是伪造的,

从字面上看,跨站点的请求来源应该是其他站点,比如,目标网站接收到来源网站的恶意操作,但是,只要是恶意操作,即使是同源,也可以算作请求伪造,因为此操作并不是用户的意愿

场景

当有两个网站A和B的时候,目标A网站有一个删除文章的功能,当我们请求的url为

www.a.com/blog/del?id=1

用户点击删除的时候。变会发出一个get请求,这样便会删掉一篇文章

然后攻击者当A网站的用户进行了登录之后,诱骗A用户打开b网站,然后执行如下代码

<img src='www.a.com/blog/del?id=1' />

这样,攻击就会发生,则会删掉A网站的文章

对于CSRF攻击,其中最重要的是,需要用户登录,然后被诱导到恶意网站,从而获取到cookie的身份认证,然后进行相关恶意操作

那么,如果当用户使用post提交呢,我们查看如下代码

function new_form(){var f = document.createElement('form');document.body.appendChild(f);f.method='post';return f;
}function create_elements(eform,ename,evalue){var e = document.createElement('input');eform.appendChild(e);e.type = 'text';e.name = enameif(!doucment,all){e.style.display = 'none';}else{e.style.display = 'block';e.style.width = '0px';e.style.height = '0px';}e.value = evaluereturn e;
}var f = new_form();
create_elements(f,'tit','hi');
f.action = 'http://www.a.com/blog/add'
f.submit();

构建完成,当目标网站A的用户被欺骗访问的恶意网站时,一个跨域的post就会提交

危害

csrf的危害如下

  1. 篡改目标网站的数据
  2. 盗取用户隐私数据
  3. 作为其他攻击的辅助手法
  4. 传播蠕虫

如何防御

csrf能成功攻击的根本原因是攻击者能够猜到所有的参数,所以出于这个原因,我们在防御的情况下,可以使用token,因为token在进行数据请求或者操作的时候,是会生成一个随机数返回给客户端,所以这个不固定的数字可以让攻击者很难猜到。但是token仅仅是预防csrf用的。如果攻击者使用xss获取到token,那么该方案就会失效。这样的攻击可以称为xsrf

界面操作点击劫持

界面操作劫持是一种基于视觉欺骗的web劫持攻击,在正常的网页操作按钮上面,放入一个不可见的iframe,实际上用户的操作行为被其不可见的框所劫持,然后执行恶意代码

劫持分为以下三类

  • 点击劫持
  • 拖放劫持
  • 触屏劫持

点击劫持

那么首先点击劫持首先的技术原理就是ifame+css样式表,我们把iframe 放入 需要输入的地方,然后再css中设置如下代码

iframe{position:absolute;z-index:9999;opacity:0.1
}

这三个代码是最关键的代码,首先position为定位,方便我们定位到需要交互的地方,然后z-index设置为最大层级,然后进行覆盖,最后opacity 进行隐藏

所以当用户点击正常交互的按钮时,其实触发了iframe的,然后执行了iframe的代码。

拖拽劫持

拖拽劫持其实在用户需要拖拽的地方,以及拖拽后到达的地方都有恶意代码进行覆盖。一般拖拽的目的是进行数据窃取

触屏劫持

触屏劫持,是指当用户进行手机操作的时候,进行劫持,比如,手机的屏幕很小,一般人员会隐藏手机的地址栏,但是,攻击者可以伪造地址栏给用户输入。然后进行劫持

结尾

对于点击劫持和xss等来说,点击劫持因为需要诱导用户与页面产生交互行为,因为实施的成本更高,在网路哟中比较少见,但是未来仍要注意被攻击的可能性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql查询前100行和后100行

查询前100行 SELECT * FROM table LIMIT 100; 查询后100行 select * from table order by id desc limit 100&#xff1b; 查询第6-15行 SELECT * FROM table LIMIT 5,10;

input框自动填充内容背景颜色为黄色解决方法

input:-webkit-autofill { box-shadow: 0 0 0px 1000px white inset !important;} 或者关闭自动填充 <form action"loginAction" method"post" autocomplete"off">转载于:https://www.cnblogs.com/yuan-ye/p/5729108.html

两种超级智能,哪一个对人类未来影响更为深远?

来源&#xff1a;刘锋科学网博客前言&#xff1a;无论在学术界还是产业界&#xff0c;超级智能并没有被纳入正式的体系概念中&#xff0c;因此超级智能究竟是什么&#xff0c;也没有统一的的定义&#xff0c;事实上在过去的时间里&#xff0c;出现了两种不同的超级智能概念&…

Java9都快发布了,Java8的十大新特性你了解多少呢?

Java 9预计将于今年9月份发布&#xff0c;这是否会是一次里程碑式的版本&#xff0c;我们拭目以待。今天&#xff0c;我们先来复习一下2014年发布的Java 8的十大新特性。 Java 8可谓是自Java 5以来最具革命性的版本了&#xff0c;她在语言、编译器、类库、开发工具以及Java虚拟…

struts2 redirect 获取参数null_社会化登录支持授权域以便于获取更大权限

使用 Authing 可以轻松接入许多社会化登录&#xff0c;同时无需翻看社会化登录提供方的繁琐接入文档&#xff0c;让开发者更加专注业务从而提升开发效率。这看起来很方便&#xff0c;But&#xff0c;通过 Authing 登录的社会化登录用户&#xff0c;无法获取更高级的权限&#x…

再不用担心DataRow类型转换和空值了(使用扩展方法解决高频问题)

在使用DataRow读取数据时&#xff0c;通常会遇到数据可能为Null, 但是又需要转换为如int等其它类型的数据&#xff0c;因此就通常会写这样的代码&#xff1a; if (dr[name] ! DBNull.Value && dr[name] ! null){ if (!int.TryParse(dr[name].ToString(), out result…

PHP单引号和双引号的区别

$foo 2; echo "foo is $foo"; // 打印结果: foo is 2 echo foo is $foo; // 打印结果: foo is $foo echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) echo foo is $foo\n; // 打印结果: foo is $foo\n

美国科技界高度关注中国科技创新进展

来源&#xff1a;新华网近日&#xff0c;美国《福布斯》双周刊网站刊文说&#xff0c;中国互联网和高科技企业已超越模仿时代&#xff0c;成为投资和研发的全球领先者&#xff0c;中国的科技巨头进入了全新的创新时代。记者在采访中发现&#xff0c;美国科技界高度关注中国科技…

补鞋匠---Cobbler 服务器自动搭建

Cobbler 服务器自动搭建http://tshare365.com/archives/439.html转载于:https://www.cnblogs.com/iiiiher/p/5744631.html

科技创新2030—“新一代人工智能”重大项目拟立项的2018年度项目公示清单

来源&#xff1a;财政资金申请根据《国务院关于改进加强中央财政科研项目和资金管理的若干意见》&#xff08;国发[2014]11号&#xff09;、《国务院关于深化中央财政科技计划&#xff08;专项、基金等&#xff09;管理改革方案的通知》&#xff08;国发[2014]64号&#xff09;…

POSIX多线程API函数

创建 int pthread_create(pthread_t* tidp,const pthread_attr_t* attr,void* (*start_rtn)(void*), void* arg ) tidp:事先创建好的pthread_t类型的参数。成功时tidp指向的内存单元被设置为新创建线程的线程ID。 attr:定义新线程的一些属性&#xff08;配置项&#xff09;&…

python中分割字符串两种方法正则分组别名_Python 正则表达式(分组)

正则表达式分组分组就是用一对圆括号“()”括起来的正则表达式&#xff0c;匹配出的内容就表示一个分组。从正则表达式的左边开始看&#xff0c;看到的第一个左括号“(”表示第一个分组&#xff0c;第二个表示第二个分组&#xff0c;依次类推&#xff0c;需要注意的是&#xff…

SpringMVC核心——视图渲染(包含视图解析)问题

一、本来想说的是返回值处理问题&#xff0c;但在 SpringMVC 中&#xff0c;返回值处理问题的核心就是视图渲染。所以这里标题叫视图渲染问题。 本来想在上一篇文章中对视图解析进行说明的&#xff0c;但是通过源码发现&#xff0c;它应该算到视图渲染中&#xff0c;所以在这篇…

国际机器人联合会:全球工业机器人2019报告

来源&#xff1a;资本实验室据国际机器人联合会&#xff08;IFR&#xff09;最新发布的《全球机器人2019——工业机器人》报告数据&#xff0c;2018年全球工业机器人出货量42.2万台&#xff0c;比上年增长6%&#xff1b;年销售额达到165亿美元&#xff0c;创下新纪录。 IFR预测…

POSIX互斥锁api函数

初始化互斥锁 int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutexattr_t *attr); 参数attr指定了新建互斥锁的属性。如果参数attr为NULL&#xff0c;则使用默认的互斥锁属性。 锁定互斥锁 int pthread_mutex_lock(pthread_mutex_t *mutex); 当 pthread_…

mediarecorder添加时间戳_Python脚本实现数据处理(官方实例)和Hive自带时间函数...

官网示例官网地址&#xff1a;https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-ApacheWeblogData下载数据wget http://files.grouplens.org/datasets/movielens/ml-100k.zip我们下载好数据安装unzip yum install -y unzip解压数据创建库创建表…

从空城计到阿尔法狗,博弈论如何渗透我们的生活?

来源&#xff1a;返朴2016年&#xff0c;有那么一只“狗”大闹天宫&#xff0c;这在整个人类社会引起了轩然大波。它就是阿尔法狗&#xff08;AlphaGo&#xff09;&#xff0c;是谷歌&#xff08;Google&#xff09;旗下公司DeepMind 在人工智能与博弈论交叉研究上的一个杰作。…

POSIX条件变量API函数

初始化条件变量 int pthread_cond_init(pthread_cond_t *cond,const pthread_condattr_t *attr); 返回值&#xff1a;函数成功返回0&#xff1b;任何其他返回值都表示错误 初始化一个条件变量。当参数attr为空指针时&#xff0c;函数创建的是一个缺省的条件变量。 阻塞 in…

阶段性思考

算上在学校&#xff0c;学习前端已经两年了&#xff0c;但水平依旧不高&#xff0c;至今都只愿意钻研布局和交互&#xff0c;把兼容和动效玩得哈皮&#xff0c;但其实依旧没有装逼的自信。 也不得不回到当初的那个思考&#xff0c;如果只是做网页&#xff0c;又何必弄前端&…

反弹式木马原理_汽车避震器的原理与改装问题

一、避震器or避振器“震”字是指车轮在路面的滚动过程中&#xff0c;由于路面的不平&#xff0c;从路面传递上来的震动&#xff0c;而不是人为制造“振”动&#xff0c;所以使用“震”字更科学。二、避震器的工作原理避震器的工作原理是通过活塞运动产生阻尼力&#xff0c;将动…