做安全红线使用Fortify工具进行扫描时,jquery append会报Cross Site Scripting DOM风险。解决该问题有两种办法。
一、原生dom方式
使用JavaScript原生dom替换append方法,原生dom会忽略script标签。比如,下列代码就会报Cross Site Scripting DOM攻击的问题

<div id="jqueryid">
</div>
<script>$(document).ready(function(){ var val = "<script>console.log('cross site');" $('#jqueryid').append(val); // console会打印出 cross site});
</script>

修改方案为

<div id="jqueryid">
</div>
<script>
$(document).ready(function(){var val = "<script>console.log('cross site');"$('#jqueryid')[0].innerHTML = val; // console不再会打印出cross site
});
</script>

在jQuery方法中,初append之外,html、before、after等方法同样存在此跨站点攻击的问题。
二、传入参数特殊处理

我们也可以将传入的参数进行特殊符号转化成html的方式处理。

代码如下

<div id="jqueryid">
</div>
<script>
$(document).ready(function(){var script = "<script>console.log('cross site');"$('#jqueryid').append(encodeHtml(script)); // console不会打印出cross sitefunction encodeHtml(value){return $('<div/>').text(value).html();}
});
</script>

其实在jQuery的官方文档中,存在如下说明。正是解决跨站点攻击的方法所在。

This method uses the browser’s innerHTML property. Some browsers may not return HTML that exactly replicates the HTML source in an original document. For example, Internet
Explorer sometimes leaves off the quotes around attribute values if they contain only alphanumeric characters.

Additional Notes:
By design, any jQuery constructor or method that accepts an HTML string — jQuery(), .append(), .after(), etc. — can potentially execute code. This can occur by injection
of script tags or use of HTML attributes that execute code (for example, ). Do not use these methods to insert strings obtained from untrusted sources such
as URL query parameters, cookies, or form inputs. Doing so can introduce cross-site-scripting (XSS) vulnerabilities. Remove or escape any user input before adding content
to the document.

Cross Site Scripting DOM攻击jQuery append() 的处理方法相关推荐

  1. XSS(Cross Site Scripting)攻击简介

    环境 Ubuntu 22.04 IntelliJ IDEA 2022.1.3 JDK 17.0.3.1 Spring Boot 3.0.1 Firefox 108.0.2 问题和分析 在Intelli ...

  2. DVWA V1.9:Reflected Cross Site Scripting(存储型XSS)

    DVWA V1.9:Reflected Cross Site Scripting(存储型XSS) 存储型 XSS 介绍 Low 级别 核心代码 官方提示 漏洞利用 Medium 级别 核心代码 官方提 ...

  3. 【常见Web应用安全问题】---1、Cross Site Scripting

    Web应用程序的安全性问题依其存在的形势划分,种类繁多,这里不准备介绍所有的,只介绍常见的一些.  常见Web应用安全问题安全性问题的列表: 1.跨站脚本攻击(CSS or XSS, Cross Si ...

  4. XSSF - Cross Site Scripting Framework

    2019独角兽企业重金招聘Python工程师标准>>> 跨站脚本框架 (XSSF) 是一个设计用来快速发现网站存在XSS漏洞的一个安全工具集. 该项目是为了验证网站存在的XSS漏洞及 ...

  5. Reflected Cross Site Scripting (XSS)

    前言 反射型XSS, 即 Reflected Cross Site Scripting (XSS),  攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的 页 ...

  6. Xss-reflected/stored跨站脚本分析(Cross site scripting)

    Xss-reflected/stored跨站脚本分析(Cross site scripting) 基础知识 针对Dom - dochtml Url概念:协议+网址/dns+端口+路径 XSS原理:对U ...

  7. CHECKMARX安全漏洞检测防止XSS(Cross Site Scripting)跨站脚本攻击

    CHECKMARX安全漏洞检测防止XSS跨站脚本攻击 总结CHECKMARX软件安全检测报告高危风险漏洞处理方式 高危警告内容 This can enable a Reflected Cross-Si ...

  8. 跨站脚本攻击(Cross‐Site Scripting (XSS))实践

    作者发现博客园在首页显示摘要时未做html标签的过滤,致使摘要中的html代码可以被执行,从而可以注入任何想要被执行的js代码,作者利用这一缺陷在本文摘要中插入了一段js代码执行alert弹窗,同时增 ...

  9. DVWA-Reflected Cross Site Scripting (XSS)

    实验环境: DVWA靶机:172.16.12.10 靶场用户名:admin 密码:123 windos攻击机:172.16.12.7 kali攻击机:172.16.12.30 实验步骤: 反射型Xss ...

最新文章

  1. JPA保存数据自动加入创建人,修改人
  2. 如何用openvr api打开vive前置摄像头
  3. 为什么 Java 中 1000==1000 为 false ?
  4. Asp.net(C#)-彩色图片转化为黑白
  5. Teechart动态设计方法
  6. 第2章 Python与数据分析
  7. 方法性能分析器--装饰者模式应用
  8. 将byte数组以html形式输出到页面,java 数组显示到html
  9. 问题 K: 数字统计
  10. 解决: Mysql安装时mysqld.exe报`应用程序无法正常启动(0xc000007b)`的问题
  11. C# Windows Phone App 开发,自制LockScreen 锁定画面类别(Class),从【网路图片】、【Assets资源】、【UI】修改锁定画面。...
  12. python定时任务管理系统_python定时任务最强框架APScheduler详细教程
  13. 专利学习笔记7:说明书附图尺寸
  14. 华为手机禁用省电精灵
  15. 先是艾瑞咨询后是腾讯,永洪科技把客户变成了投资人
  16. 系统功能性/非功能性需求
  17. 【ArcGIS教程】(1)带有经纬度的EXCEL数据如何转换为shp矢量数据?
  18. 征友记之---前端开发Partner
  19. 也谈“为什么中国的程序员总被称为码农?”
  20. 区块链食品安全(区块链食品安全溯源系统痛点)

热门文章

  1. java创意绘画代码_10分钟鸿蒙应用实战开发:鸿蒙手绘板 (含源代码)
  2. Vegas2020视频剪辑软件 简体中文V17.0
  3. 大学计算机领域论文,计算机科学技术的应用领域简述论文.doc
  4. 百家争鸣的技术自媒体下的清流
  5. Flex FormItem样式
  6. 预计24小时删 | 最后一次分享这套课程资源,得此资源英语突飞猛涨!
  7. 三八送什么礼物好?三八节购物清单推荐
  8. 基于C#的ArcGIS Engine二次开发的一个简单测试程序
  9. 我眼中的未来计算机和互联网–读《文明之光》第三册有感
  10. str_split函数的simplify参数与unlist函数的区别