Skip to content

Commit

Permalink
123
Browse files Browse the repository at this point in the history
  • Loading branch information
SK-Luffa committed Sep 2, 2024
1 parent bd66651 commit 3caf0eb
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 1 deletion.
2 changes: 1 addition & 1 deletion docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ export default defineConfig({
text: '技术类',
items: [
// { text: 'vue', link: '/FixedArticle' },
// { text: 'Runtime API Examples', link: '/api-examples' }
]
},
{
text: '面试与八股',
items: [
{ text: 'CSS', link: '/pages/FixedArticle/CSS' },
{ text: 'JavaScript', link: '/pages/FixedArticle/JavaScript' },
{ text: 'ES6', link: '/pages/FixedArticle/ES6' },
{ text: 'vue', link: '/pages/FixedArticle/vue' },
Expand Down
1 change: 1 addition & 0 deletions docs/src/pages/FixedArticle/CSS/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CSS
69 changes: 69 additions & 0 deletions docs/src/pages/FixedArticle/JavaScript/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1243,4 +1243,73 @@ function strip(num, precision = 12) {
- 反射型
- DOM
### 存储型
存储型XSS的攻击步骤
1. 攻击者将恶意代码提交到目标网站的数据库中
2. 用户打开目标网站时,网站服务端将恶意代码从数据库中取出,拼接在HTML中返回给浏览器
3. 用户浏览器接收到响应后解析执行,会在其中的恶意代码也被执行
4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站的接口执行攻击者指定的操作
这种攻击常见于带有用户保存数据的功能网站,如论坛发帖、商品评论、用户私信等
### 反射型XSS
反射型XSS的攻击步骤:
1. 攻击者构造出特殊的URL,其中包含恶意代码
2. 用户打开带有恶意代码的URL时,网站服务端将恶意代码从URL中取出,拼接在HTML中返回给浏览器
3. 用户浏览器接收到响应后解析执行,会在其中的恶意代码也被执行
4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作
#### 反射型XSS跟存储型XSS的区别:
- 存储型XSS的恶意代码是存储在数据库中,反射型XSS是存储在URL当中
- 反射型XSS常见于通过URL传递参数的功能,如:网站搜索、跳转等
- 由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击
- POST的内容也可以触发反射型XSS,只不过出发的条件比较苛刻(需要构造表单提交页面,并引导用户点击)所以非常少见
### DOMXSS
DOMXSS的攻击步骤:
1. 攻击者构造出特殊的URL,其中包含恶意代码
2. 用户带有恶意代码的URL
3. 用户浏览器接收到响应后解析执行,前端javascript取出URL中的恶意代码并执行
4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作
DOMXSS跟前两种XSS的区别:DOMXSS攻击中,取出和执行恶意代码由浏览器端完成,属于前端js自身安全的漏洞,而其他两种XSS都属于服务端的安全漏洞
### XSS的预防
通过前面的介绍,看到了XSS攻击的两大要素:
- 攻击者提交恶意代码
- 浏览器执行恶意代码

- 针对第一个要素,我们在用户输入的过程中,过滤掉用户输入的恶意代码,然后提交给后端,但是如果攻击者绕开前端请求,直接构造请求就不能预防了,而如果在后端写入数据库之前,对输入进行过滤,然后把内容给前端,但是这个内容在不同地方就会有不同的显示
## CSRF
CSRF:跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求,利用受寒者在被攻击网站已经获取的注册凭证,绕后后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的

一个典型的CSRF攻击有着如下流程:
- 受害者登陆a.com,并保留登陆凭证(cookie)
- 攻击者引诱受害访问了b.com
- b.coma.com发送了一个请求 a.com/act=xx 浏览器或默认携带a.com的cookie
- a.com收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求
- a.com以受害者的名义执行了act=xx
- 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作

CSRF可以通过get请求,即通过访问img的页面后,浏览器自动访问目标地址,发送请求,同样,也可以设置一个自动提交的表单发送post请求
### CSRF的特点
- 攻击一般发起在第三方网站,而不是被攻击的网站,被攻击的网站无法防止攻击的发生
- 攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据
- 整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”
- 跨站请求可以用各种方式:图片URL、超链接、CORS、From提交等等。请求部分方式可以直接镶嵌在第三方论坛、文章中,难以进行追踪
### CSRF的预防
CSRF通常从第三方网站发起,被攻击的网站无法防止攻击的发生,只能通过增强自己网站针对CSRF的防护能力来提升安全性,

防止CSRF常用的方法如下:
- 阻止不明外域访问
- 同源检测
- Samesite Cookie
- 提交时要求附加本域才能获取的信息
- CSRF Token
- 双重Cookie验证
## SQL注入
- Sql注入攻击,是通过将恶意的sql查询或添加语句插入到应用输入参数,在后台sql服务器上解析执行的攻击
流程如下:
- 找出sql漏洞的注入点
- 判断数据库的类型以及版本
- 猜解用户名和密码
- 利用攻击查找web后台管理入口
- 入侵和破坏
预防方式如下:
- 严格检查输入变量的类型和格式
- 过滤和转义特殊字符
- 对访问数据库的web应用程序采用web应用防火墙

0 comments on commit 3caf0eb

Please sign in to comment.