XSS和CSRF攻击
一、XSS攻击(跨脚本攻击)
是一种普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
本质是:网站没有对恶意代码进行过滤,浏览器因为无法分辨脚本是否可信,从而导致恶意代码的执行。
1.反射型XSS攻击流程(恶意脚本发送给浏览器)
攻击者构造带有恶意代码参数的URL,当服务器接受到请求后,从URL中获取数据,拼接到HTML后返回,从而使得恶意代码的执行。非持久化攻击
2.存储型XSS攻击流程(恶意代码发送给目标服务器)
攻击者将恶意代码存储在网站的数据库中,当用户向服务器发起请求时,服务器会讲恶意代码拼接返回给用户,浏览器解析执行,从而使得恶意代码的执行。持久化攻击
3.DOM型XSS攻击
只有HTML代码,并不存在服务器代码,即此程序并未与服务器端进行交互。属于反射型XSS攻击。通过url传入参数去控制触发,url里的参数部分本来可能是业务正常逻辑,取到后会作为dom内容渲染到页面。
4.XSS攻击会造成的结果
1.cookie劫持。可以通过document.cookie得到。
2.构造GET/POST请求。
3.钓鱼。如攻击者在登录框的地方将原来的登录框隐藏一下,自己伪造一个登录框,即可能会获取到用户的个人信息。
4.识别用户浏览器。navigator.userAgent
5.识别用户安装的软件。
6.获取用户真实的IP地址。借助第三方软件,当客户端安装了JRE环境,可以通过调用JavaApplet接口获取本地IP。
7.判断是否访问了某个网站。
8.XSS蠕虫。
5.XSS攻击防御手段
1.对用户输入信息和URL参数进行过滤。
2.对输出的行进行HTML编码。
3.设置HttpOnly,使得cookie不能被客户端的脚本获取。
二、CSRF攻击(跨站请求伪造)
利用服务器的漏洞和用户的登录状态实施攻击。攻击者引诱用户打开恶意网站,在恶意网站中利用用户的登录状态向对应网站发起请求。
1.CSRF攻击方式
打开恶意网站,有三种方式实施CSRF攻击
1.自动发起GET请求
转账的请求接口隐藏在img标签内。
2.自动发起POST请求
在页面中构建隐藏的表单。
3.引诱用户点击链接
提供一些下载地址。
2.CSRF攻击防御手段
1.验证HTTP Referer字段。安全性都依赖于第三方——浏览器。根据HTTP协议,HTTP头中有一个字段Referer,记录了该HTTP请求的来源地址。
缺点:Referer字段的值由浏览器提供,每个浏览器的Referer的具体实现有差别,且并不能保证浏览器本身没有安全漏洞;在最新的浏览器,无法篡改Referer的值,但是有些用户认为侵犯了隐私权,用户自行设置浏览器在其发送请求时不提供Referer值,当有些网站需要校验Referer时,会误判受到了CSRF攻击。
2.在请求地址中添加token并验证。token不存在于cookie中,用户登陆后产生token并放入session中,然后在每次请求时把token从session中取出,将token以参数的形式加入请求。
缺点:对于每一个请求都加上token,繁琐且容易出现漏添加的问题。通常用的方法是每次页面加载时,利用JavaScript遍历整个dom树,对于a和form添加token。对于动态生成的html需要在编码时手动添加token。同时攻击者还是能通过Referer字段得到token值来发起CSRF攻击。
3.在HTTP头中自定义属性并验证。将token放入HTTP头中自定义属性里。可以通过XMLHttpRequest类一次性给所有请求加上csrftoken这个HTTP头属性。
缺点:XMLHttpRequest请求通常用于Ajax方法中对于页面局部的异步刷新,并不是所有的请求都适合用这个类发起,且这类请求得到的页面不能被浏览器记录。
XSS和CSRF攻击相关推荐
- php csrf攻击 xss区别,XSS与CSRF攻击及防御方法
前言 web安全这词可能对于服务端工程师来说更加"眼熟",部分前端工程师并不是十分了解,今天就来讲讲XSS攻击与CSRF攻击及防御方法 XSS XSS (Cross Site Sc ...
- XSS及CSRF攻击防御
一.概念: XSS攻击全称跨站脚本攻击(Cross Site Scripting); CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Clic ...
- XSS、CSRF攻击以及预防手段
文章目录 XSS 反射型 持久型 DOM型 XSS如何防御? CSRF XSS XSS全程Cross Site Scripting,名为跨站脚本攻击,是一种常见于 Web 应用中的计算机安全漏洞. 恶 ...
- XSS、CSRF攻击
同源策略: 同源指的是我们访问站点的:协议.域名.端口号必须一至,才叫同源. 浏览器默认同源之间的站点是可以相互访问资源和操作DOM的,而不同源之间想要互相访问资源或者操作DOM,那就需要加一些安全策 ...
- 【http】xss和csrf 攻击
xss攻击: xss,也叫作css,cross-site-script,跨站脚本攻击,原理大致是将一段恶意的js代码注入到目标网站,用户浏览被注入的网站时就会被攻击. 常规来讲,有以下三种途径: 1. ...
- 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...
第三百九十二节,Django+Xadmin打造上线标准的在线教育平台-sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...
- php csrf攻击 xss区别,用大白话谈谈XSS与CSRF
这两个关键词也是老生常谈了,但是还总是容易让人忘记与搞混~. XSS与CSRF这两个关键词时常被拉出来一起比较(尤其是面试),我在这里也在写一篇扫盲文,也帮自己整理一下知识脉络. 这篇文章会用尽量&q ...
- 总结 XSS 与 CSRF 两种跨站攻击
在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...
- 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击
主要包括 浏览器同源策略与跨域请求 XSS攻击原理及防御策略 如何使用SpringSecurity防御CSRF攻击 CC/DDOS攻击与流量攻击 什么是SSL TLS HTTPS? 一.浏览器的同源策 ...
最新文章
- ES6基础之Array.fill函数
- 【CyberSecurityLearning 60】ACCESS数据库的注入+ACCESS数据库的cookie注入
- 大量多风格多功能后台管理模板
- SAP Spartacus 最后渲染出的页面和后台 CMS 页面元数据的一一对应
- jquery去掉数组最后一个元素_从数组中删除最后一项
- java基本类型与引用数据类型_java基本数据类型与引用数据类型总结
- 浅谈JS、Ajax、JQuery之间的关系
- html5各种页面切换效果和模态对话框
- 《孤勇者》matlab版,用matlab弹奏《孤勇者》
- win10熄屏时间不对_Windows10下显示时间不正确的原因及解决技巧
- Android 原生插件开发步骤
- 修改idea的头部文档注释信息
- 程序猿生存指南-46 暴走的鸟
- IDEA中设置关闭标签页的快捷键
- rk3399 typec鼠标及滑鼠问题
- uniCloud学习笔记---uniId
- 程序员如何提一个好问题?
- php视频画面区域裁剪,怎么裁剪视频画面
- 基于RSA和AES混合加密实现的加解密小工具
- kubeadm部署k8s直接证书100年
热门文章
- 三星K9F1G08U0E(128MB,NAND FLASH) STM32平台驱动程序(模拟时序)
- 生命与疫情的搏斗还在持续,网络对城市的替代已然开始
- 格式化U盘丢失重要照片,未备份情况下该怎么办?2种方案协助您找回宝贵照片!
- hexo+next博客美化——增加插件
- 美通社企业新闻汇总 | 2019.2.18 | 《流浪地球》IMAX中国票房破三亿;阿迪达斯再推限定 UltraBOOST 19...
- 事件处理机制之Gestures(手势)
- [Python] 读取 rar/zip 压缩文件
- php 把省市存入数据库,用JS做了个省市县三级联动效果可存入数据库的值老不对,有代码...
- Python——pandas包
- Java注释规范整理