小补充:cookie的浏览器特性:cookie可以实现跨页面全局变量,cookie可以跨越同域名下的多个网页使用,但不能跨越多个域名使用。 XSS 攻击(跨站脚本攻击)一种 XSS分类根据攻击的
存储型原理:攻击者将恶意代码(xss代码)提交(存储)至服务器(不管是数据库、内存还是文件系统),当受害者浏览包含次恶意代码的网页就会执行恶意代码。 攻击步骤: 1.攻击者将恶意代码提交到目标服务器中; 2.用户打开目标网站时,网站服务器取出包含恶意代码的数据,拼接在 HTML 中返回给浏览器; 3.用户浏览器接收到相应后解析执行,混在其中的恶意代码也被执行; 4.恶意代码窃取用户数据并发送到攻击者网站;或冒充用户的行为,调用目标网站接口执行攻击者指定的操作。 常见场景:带有用户保存数据的网站,比如论坛发帖、商品评论、用户私信等。 反射型原理:反射型 XSS,也叫非持久型 XSS,是指发生请求时,XSS 代码出现在请求 URL 中,作为参数提交到服务器中,服务器解析并响应。响应结果中包含 XSS 代码,最后浏览器解析并执行。 攻击步骤: 1.攻击者构造出特殊的 URL,其中包含恶意代码; 2.用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器; 3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行; 4.恶意代码窃取用户数据并发送到攻击者网站;或冒充用户的行为,调用目标网站接口执行攻击者指定的操作。 常用场景:常见于通过 URL 传参的功能,比如网站搜索、跳转等。由于需要用户主动打开恶意的 URL 才能生效,因此攻击者往往会结合多种手段DOM型原理:同以上反射型XSS 攻击一样。 攻击步骤: 1.攻击者构造出特殊的 URL,其中包含恶意代码; 2.用户打开带有恶意代码的 URL; 3.用户浏览器接收到相应后解析执行,前端 js 取出 URL 中的恶意代码并执行; 4.恶意代码窃取用户数据并发送到攻击者网站;或冒充用户的行为,调用目标网站接口执行攻击者指定的操作。 XSS类型小结
XSS防御xss攻击的两大要素:
常见防御手段: 1.输入过滤在用户提交时,由 2.防止执行恶意代码 存储型和反射型XSS 都是在服务端取出恶意代码后,插入到响应 HTML 中,预防这两种漏洞,有两种常见的做法:
前端渲染:目前主流框架采用的 SPA 的方式,我们会明确告诉浏览器:下面要设置的内容是文本( 但是对于有高性能要求,或者是有 seo 需求的页面,仍然要面对拼接 HTML 的问题。 转义:如果拼接 HTML 是必要的,就需要采用合适的 3.拒绝危险输入(针对DOM型 XSS 攻击)
1.输入内容长度控制 对于不受信任的输入,都应该先定一个合理的长度。虽然无法完全防止 XSS 的发生,但是可以增加 XSS 攻击的难度。 2.HttpOnly 对敏感的 cookie 设置 HttpOnly,禁止 JavaScript 访问这些信息,攻击者在完成 XSS 攻击后也无法窃取敏感信息。 3.内容安全策略(Content Security Policy,CSP) CSP 在 XSS 的防范中可以起到以下的作用:
可以使用以下两种方式开启内容安全策略:
CSRF攻击(跨站请求伪造)CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者 CSRF攻击流程1.受害者登录网站A,保留了登录凭证(cookie); 2.攻击者诱导受害者访问危险网站B; 3.危险网站B向网站A发送一个正常的请求,浏览器会默认携带存放在网站A下的 cookie; 4.网站A在接收到请求后,对请求进行验证,确认是受害者的凭证,误以为是受害者自己发送的请求; 5.网站A以受害者的名义,执行了危险请求中请求的操作。 CSRF分类GET 类型的 CSRFGET 类型的 CSRF 实现方式非常简单,只需要一个普通的 HTTP 请求,一般会放在图片等资源里面,受害者在打开危险网站后,危险网站的图片加载就发出了一个危险的 GET 请求,这样就完成了一个 GET 类型的 CSRF 攻击。 POST 类型的 CSRF 这种方式通常会使用一个链接类型的 CSRF这种方式并不常见,实现思路和 GET 类型一致,但是需要用户手动点击才能触发,因此攻击者通常会以广告的形式诱导用户中招。 CSRF防御:CSRF的两个特点:
常见防御手段: 1.同源检测既然大多数 CSRF 都发生在第三方网站,那么我们就直接禁止外域对我们发起的请求:
补充:Origin Header 与 Referer Header的区别:
![]() 2.CSRF TokenCSRF 的另一个特征是 实现步骤: 1.将 CSRF Token 输出到页面; 2.页面提交的请求携带这个 Token; 3.服务器验证 Token 是否正确。 3.双重 Cookie 验证原理和 Token 相似,在请求接口时,在请求参数中附带上对应的 cookie,服务端在接收到请求时对参数中的 cookie 和 cookie 中的值进行对比判断是否为攻击请求。 4.Samesite Cookie 属性Google起草了一份草案来改进HTTP协议,那就是为Set-Cookie响应头新增Samesite属性,它用来标明这个 Cookie是个“同站 Cookie”,同站Cookie
(后续几点不理解,可自行查阅cookie的浏览器特性。) ![]() |
万奢网手机版
官网微博:万奢网服务平台