做安全红线使用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. msoffice二级各题题型及其分值
  2. 漫长的数据中心绿化之路到底该如何走www.shzhenai.com
  3. 顺序循环队列队满队空的两种判别方式
  4. Springboot直接访问templates中的html
  5. 无法打开计算机上的event log服务,Win7系统下启用Windows event log服务发生4201错误的正确解决方法...
  6. 无法获取未定义或 null 引用的属性“value”_SpringBoot之Spring@Value属性注入使用详解
  7. Kafka 分布式消息队列介绍
  8. Android SDK开发包下载地址
  9. Python3的os.popen()与subprocess使用(关于数据处理)
  10. SHELL编程基础之BASH入门
  11. 一句代码搞定权限请求,从未如此简单
  12. 软件项目组织与管理期末考试复习要点整理翻译
  13. python实现kmeans图像分割、一只遥望大海的小狗_【Python】爬虫+ K-means 聚类分析电影海报主色...
  14. 地铁服务器的系统,地铁综合监控系统
  15. 组策略管理(关闭UAC)
  16. linux命令怎么查看日志文件,linux查看日志文件命令
  17. 追捕文件WRY.DLL的浅显分析及程序示例
  18. 苹果6s上市时间_为什么苹果能用5年,安卓1年得换?原因太真实了
  19. 【JS】Number to digit tiers
  20. 「Jenkins」- No valid crumb was included in request for /ajaxExecutors @20210305

热门文章

  1. 使用树莓派控制led灯板 ws2812
  2. 基于Unity3D的塔防游戏
  3. 对啊网初级会计6所有者权益
  4. 基于dsPIC30F的高精度数据采集器的研制
  5. 计算机弹歌你的答案,方宇杰翻唱答案 答案抖音你的方宇杰
  6. 智能仓库数字孪生好不好?工业系统厂家强荐广州华锐互动
  7. 纯JavaScript在网页上实现”简书“的文章编辑器
  8. ITK 2D to 3D
  9. error: linker `link.exe` not found
  10. C++的clog与cerr