🎉 博客主页:【剑九 六千里-CSDN博客】
🎨 上一篇文章:【介绍下语义化,怎样保证代码符合语义化?说说HTML5语义化标签?】
🎠 系列专栏:【面试题-八股系列】
💖 感谢大家点赞👍收藏⭐评论✍
1. XSS
1.1 XSS介绍
XSS (Cross-Site Scripting)
攻击是一种恶意的 web
应用攻击手段,它可以让攻击者在用户的浏览器中执行恶意的 JavaScript
代码。XSS
攻击的目的是盗取用户的敏感信息,如 cookie
、session
等,或者冒充用户执行未授权的操作。
1.2 XSS分类
XSS
攻击可以分为以下几种类型:
- 反射型 XSS (Reflected XSS):在反射型
XSS
攻击中,攻击者通过诱使受害者点击一个包含恶意JavaScript
代码的链接,当受害者点击该链接时,恶意JavaScript
代码会被浏览器执行。 - 存储型 XSS (Stored XSS):在存储型
XSS
攻击中,攻击者将恶意JavaScript
代码存储在web
应用中,例如在留言板、评论区等地方。当其他用户访问包含恶意JavaScript
代码的页面时,恶意JavaScript
代码会被浏览器执行。 - DOM-based XSS (DOM-based XSS):在
DOM-based XSS
攻击中,攻击者通过修改web
应用的DOM
结构来执行恶意JavaScript
代码。
1.3 预防XSS
为了防止 XSS
攻击,开发者可以采用以下几种方法:
- 输入验证:对用户的输入进行严格的验证和过滤,以消除可能的恶意
JavaScript
代码。 - 输出编码:对用户的输出进行编码,将可能的恶意字符转义为
HTML
实体,以避免恶意JavaScript
代码被浏览器执行。 - 内容安全策略 (CSP):使用
CSP
头部来指定哪些内容可以被浏览器加载和执行。 - HTTPOnly 标志:在
cookie
中设置HTTPOnly
标志,可以防止JavaScript
代码读取和修改cookie
。 - 安全的 HTTP 头部:使用安全的
HTTP
头部,如X-Content-Type-Options
、X-XSS-Protection
等,来提高web
应用的安全性
2. CSRF
2.1 CSRF介绍
CSRF (跨站请求伪造) 攻击是一种 web
应用程序安全威胁,它利用了用户的浏览器和 web
应用程序之间的信任关系。在 CSRF
攻击中,攻击者诱骗用户访问恶意网站或点击包含特殊制作的请求的链接。
2.2 CSRF分类
- 攻击者诱骗用户访问恶意网站或点击包含特殊制作的请求的链接。
- 恶意网站或链接包含一个隐藏的表单或
JavaScript
代码,该代码向web
应用程序发送请求,并使用用户的凭证。 web
应用程序,认为该请求来自用户,处理该请求并执行未经授权的操作。
2.3 预防CSRF
为了预防 CSRF
攻击,开发人员可以实施以下措施:
- 使用 CSRF 令牌:
CSRF
令牌是唯一的、随机值,由服务器生成并包含在表单数据或HTTP
头部的请求中。服务器验证CSRF
令牌,以确保请求是合法的且来自预期的来源。 - 实现安全的 cookie:在
cookie
中设置HTTPOnly
标志,可以防止JavaScript
代码读取和修改cookie
。此外,使用secure
标志可以将cookie
仅通过HTTPS
发送,从而进一步提高cookie
的安全性。 - 重置会话:在用户注销或更改密码时,重置会话以使任何现有的
CSRF
令牌失效。 - 输入验证和输出编码:对用户的输入进行严格的验证和过滤,以消除可能的恶意代码。对用户的输出进行编码,将可能的恶意字符转义为
HTML
实体,以避免恶意代码被浏览器执行。 - 内容安全策略 (CSP):使用
CSP
头部来指定哪些内容可以被浏览器加载和执行。 - 安全的 HTTP 头部:使用安全的
HTTP
头部,如X-Content-Type-Options
、X-XSS-Protection
等,来提高web
应用程序的安全性。