web安全之XSS攻击原理及防范

本文详细介绍了DOM型XSS攻击的原理,包括通过document.write、innerHTML和location等方式触发的攻击。强调了DOM XSS是由于本地客户端处理DOM数据导致的安全问题。提出了防御措施,如对HTML和JS进行编码,设置cookie的http-only和secure-only标志,利用X-XSS-Protection响应头,以及采用HTML Attribute和JavaScript编码等。此外,还提到了CSP(Content-Security-Policy)在防止XSS攻击中的重要性。
摘要由CSDN通过智能技术生成

DOM XSS 是基于文档对象模型的XSS。一般有如下DOM操作:

  1. 使用document.write直接输出数据。

  2. 使用innerHTML直接输出数据。

  3. 使用location、location.href、location.replace、iframe.src、document.referer、window.name等这些。

比如如下demo:

假如对于变量url的值是:javascript:alert(‘dom-xss’); 类似这样的,那么就会收到xss的攻击了。因此对于DOM XSS主要是由于本地客户端获取的DOM数据在本地执行导致的。因此我们需要对HTML进行编码,对JS进行编码来防止这些问题产生。具体如何编码可以请看我下面的 XSS 如何防范那个地方即可。

我们接下来看看demo代码吧:

  1. 使用document.write直接输出导致浏览器解析恶意代码

代码如下:

页面渲染完成后,点击弹窗如下所示:

在这里插入图片描述

2. 使用innerHTML直接输出导致浏览器解析恶意代码

代码如下:

点击一样也会弹窗窗口的。也会一样执行xss攻击的。

  1. 使用location/location.href/location.replace/iframe.src 造成的XSS

如下代码:

刷新下页面,也会弹出窗口执行 xss攻击了。

cookie安全策略

=============================================================================

在服务器端设置cookie的时候设置 http-only, 这样就可以防止用户通过JS获取cookie。对cookie的读写或发送一般有如下字段进行设置:

  • http-only: 只允许http或https请求读取cookie、JS代码是无法读取cookie的(document.cookie会显示http-only的cookie项被自动过滤掉)。发送请求时自动发送cookie.

  • secure-only: 只允许https请求读取,发送请求时自动发送cookie。

  • host-only: 只允许主机域名与domain设置完成一致的网站才能访问该cookie。

X-XSS-Protection设置

=====================================================================================

目前该属性被所有的主流浏览器默认开启XSS保护。该参数是设置在响应头中目的是用来防范XSS攻击的。它有如下几种配置:

值有如下几种:默认为1.

  • 0:禁用XSS保护。

  • 1:启用XSS保护。

1;mode=block; 启用xss保护,并且在检查到XSS攻击是,停止渲染页面。

XSS防御HTML编码

==============================================================================

我们为什么要防御HTM

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值