-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第190题:除了CSRF,你还知道其它的攻击方式吗? #495
Comments
XSS(Cross Site Scripting),跨站脚本攻击 对应措施:输入值过滤,HTML转义 |
我所了解的,除了 CSRF ,还有:
XSS 攻击什么是 XSS 攻击XSS 是跨站脚本攻击(Cross Site Scripting),为了与 CSS 区别开来,故简称 XSS XSS 攻击是指往页面恶意的注入脚代码本。当用户浏览该页时,嵌入其中的 Script 代码会被执行,从而达到恶意攻击用户的目的。 当页面被注入了恶意 JavaScript 脚本时,浏览器是无法区分这些脚本是否是被恶意注入的还是正常的页面脚本,所以恶意注入 JavaScript 脚本也拥有所有的脚本权限。它可以拿到:
黑客一旦拿到这些信息,就可以对用户进行攻击,例如模拟用户登录、进行转账等,所以我们应该学习并避免黑客对我们的网站进行攻击,维护网站安全,从以下方面切入:
XSS 是如何注入的其中常见的 XSS 攻击主要分为:存储型 XSS 攻击 、反射型 XSS 攻击 、基于 DOM 的 XSS 攻击 1. 存储型 XSS 攻击存储型 XSS 攻击是指黑客利用站点漏洞将一段恶意 JavaScript 代码提交到网站的数据库中 存储 ,当用户访问网站的时候,网站将恶意脚本同正常页面一起返回,浏览器解析执行了网站中的恶意脚本,将用户的 Cookie 信息等数据上传到恶意服务器 存储型 XSS 攻击经常出现在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种 XSS 比较危险,容易造成蠕虫,盗窃 cookie 等 2. 反射型 XSS 攻击反射型 XSS 一般是黑客通过特定的手段(例如电子邮件等),诱导用户去访问一个包含恶意脚本的 URL,当用户访问这个带有恶意脚本的 URL 时,网站又把恶意 JavaScript 脚本返回给用户执行 反射型 XSS 通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies 或进行钓鱼欺骗 3. 基于 DOM 的 XSS 攻击基于 DOM 的 XSS 攻击是指通过恶意脚本修改页面的 DOM 结构,是纯粹发生在客户端的攻击。 DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞。 总结存储型 XSS: 持久化,代码是存储在服务器中的 反射型 XSS: 非持久化,需要欺骗用户自己去点击链接才能触发 XSS 代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面 基于 DOM 的 XSS: 不经过后端,纯粹发生在客户端的攻击,属于前端 JavaScript 自身的安全漏洞 如何阻止 XSS 攻击无论是上面的哪种 XSS 攻击,都是恶意的向浏览器注入脚本,然后通过恶意脚本将用户信息发送到恶意服务器上,所以我们要阻止 XSS 攻击,就要阻止恶意脚本的注入与恶意信息的发送 常见的阻止 XSS 的策略有: 1. 过滤特殊字符,或对特定字符进行编译转码例如对 2. 对重要的 cookie 设置 httpOnlyHttpOnly 最早由微软提出,至今已经成为一个标准。 通过对重要的 Cookie 设置 httpOnly ,防止客户端通过 document.cookie 读取 cookie ,也就是说,JavaScript 读取不到此条 Cookie ,也就无法提交给恶意服务器了 注意:此 HTTP 头由服务端设置 3. URLEncode 操作将不可信的值输出 URL参数之前,进行 URLEncode操作。对于从 URL 参数中获取值一定要进行格式检测(比如你需要的时URL,就判读是否满足URL格式) 4. Web 安全头支持浏览器自带的防御能力,一般是通过开启 Web 安全头生效的。具体有以下几个:
SQL 注入攻击SQL注入是一种非常常见的数据库攻击手段,也是网络世界中最普遍的漏洞之一,它其实就是黑客在表单中填写包含 SQL 关键字的数据,表单数据提交给服务器时让数据库执行恶意 SQL 的过程。 例如 如何防止 SQL 注入主要是后端进行对 SQL 注入攻击的防护,常见的防护机制有:
DDoS 攻击
DDoS:分布式拒绝服务攻击(Distributed Denial of Service),DDos攻击是在 DOS 攻击基础上的,可以通俗理解,dos 是单挑,而 ddos 是群殴,因为现代技术的发展,dos攻击的杀伤力降低,所以出现了DDOS,攻击者借助公共网络,将大数量的计算机设备联合起来,向一个或多个目标进行攻击。 为了防御 DDoS 攻击,阿里巴巴的安全团队在实战中发现,需要做的就是检测技术和清洗技术,检测技术就是检测网站是否正在遭受 DDoS 攻击,而清洗技术就是清洗掉异常流量。这里不做引伸 上传文件攻击如果 web 网站没有对文件类型进行严格的校验,导致可执行文件被恶意上传到了服务器,恶意脚本就会执行 如何防止上传文件攻击
DNS 查询攻击
DNS 查询攻击就是攻击者通过精心构造 DNS报文 ,在 DNS 查询解析某个域名时,冒充真正的权威 DNS 做出回应,使得用户访问得到一个虚假响应。一旦本地接受了这个虚假响应并写入缓存,DNS 就会被攻击,用户也不清楚自己正在访问错误的地址或数据 关于防御的话,就是限制DNS解析器仅响应来自可信源的查询或者关闭DNS服务器的递归查询等 总结本文结合上篇 如果让你去实现一个 CSRF 攻击你会怎么做? ,总共介绍了六种 web 攻击与防护:
其中最重要的是 CSRF 攻击、 XSS 攻击,其余只做了解即可。 |
No description provided.
The text was updated successfully, but these errors were encountered: