# XSS 跨站脚本攻击

XSS 跨站脚本攻击是一种在 web 应用中的计算机安全漏洞,它允许恶意 web 用户将代码植入到提供给其他用户使用的页面中,攻击者通过注入非法的 html 标签或者 js 代码,从而当用户浏览该网页时,控制用户浏览器

# 举例

# 存储型 XSS

用户在留言板发布信息是一条恶意的 js 代码消息,当其他用户访问此消息时,会执行恶意脚本

# 反射型 XSS

攻击者构造一个恶意链接,当用户点击时,就会执行恶意脚本,将脚本作为响应的一部分返回给用户的浏览器

# DOM 型 XSS

用户留言板输入 script 去修改 DOM 元素,访问者访问到留言就会被攻击

# sql 注入

在用户在搜索栏输入 sql 语句,如果没有处理,就有可能攻击到数据库

# 防御

  • 1、过滤

对用户的输入进行过滤,通过将 <>'' 和 "" 等字符进行转义,移除用户输入的标签内容

  • 2、编码

根据输出数据所在的上下文来进行相应的编码,数据放置于 HTML 元素中,需进行 HTML 编码,放置于 URL 中,需要进行 URL 编码,此外还有 JS 编码、CSS 编码、HTML 属性编码和 JSON 编码等等

  • 3、HttpOnly

在 cookie 中设置 HttpOnly 属性,使得 js 脚本无法读取到 cookie 信息

# CSRF 跨站请求伪造

CSRF 跨站请求伪造是指攻击者冒充用户发起请求,在用户不知情的情况下完成一些违背用户意愿的事情

# 举例

  • 用户登录某个正常网站,比如银行网站,攻击者诱导用户点击某链接(如银行转账的链接接口),用户点击链接时,他们的浏览器会向目标网站发送请求,由于请求会携带用户的认证信息,所以会被目标网站视为正常操作

# 防御

  • 1、使用 token

对于敏感操作,服务器会产生一个 token 到 session 中,将 token 和 session 会话相绑定,如果当前会话与 token 验证不上,就不进行敏感操作

  • 2、Referer 验证

使用 Referer 验证页面的来源,只接收本站的请求,服务器才做响应,如果不是就进行拦截

  • 3、使用验证码

重要操作要求用户输入验证码,强制用户和应用进行交互,最终完成请求

# 点击劫持

# 举例

  • 在某网站上设置透明按钮,点击后执行危险脚本,或者嵌入不可见的 iframe,诱导用户进行点击,执行信任网站的相关操作

# 防御

  • 1、X-Frame-Options

服务器通过设置 HTTP 响应头 X-Frame-Options 来控制页面是否可以被嵌入到 iframe 中

  • 2、严格遵循 CSP 内容安全策略

通过设置 CSP 头来更加细致地控制资源的加载和执行,从而提高页面的安全性,例如:设置 frame-ancestors:"self" 来限制只有同源页面才能嵌入当前页面

  • 3、使用 js 检测页面是否嵌入到 iframe 中
  • 4、用户教育:提高安全意识,教育用户不要随意点击可疑网站

# 第三方库攻击

  • 供应链攻击,攻击者可能通过在第三方库中注入恶意代码或后门来破坏供应链,导致广泛的安全漏洞或数据泄漏
  • 数据泄漏,第三方库可能未加密传输敏感数据
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

dmq 微信支付

微信支付

dmq 支付宝

支付宝