setAttribute 会自动转义 HTML 字符吗?

2023-12-20

我正在调查我们系统中的一个错误,其中链接的标题属性被设置为类似于click if value > 400但实际显示的工具提示是click if value > 400。该标题值是由用户输入定义的,因此原始工程师对文本进行了转义,这样就不会导致 XSS 漏洞。click if value > 400变成click if value > 400.

这个额外的转义步骤似乎会导致 HTML 特殊字符转义过多,因此它们的转义值会按字面呈现。

为了更加彻底,我检查了 HTML 规范,根据这一行,似乎setAttribute函数必须自动转义属性的值字符串。

https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082

“如果具有该名称的属性已存在于元素中,则其值将更改为 value 参数的值。该值是一个简单的字符串;在设置时不会对其进行解析。因此任何标记(例如语法被识别为实体引用)被视为文字文本,并且在写出时需要由实现进行适当的转义。”

据我了解,这条线的意思是setAttribute函数应该转义 HTML 特殊字符。这是正确的解释吗?


这句话的简单英语解释是setAttribute()不将该值解析为 HTML。原因是您根本没有编写 HTML;而是在编写 HTML。该值是纯文本格式,而不是 HTML 格式,因此 HTML 中通常是特殊字符的内容在纯文本中没有特殊含义,将它们当作 HTML 进行转义实际上是具有破坏性的。

>是 HTML 表示形式>。您只需将其编码为 HTML,而不是纯文本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setAttribute 会自动转义 HTML 字符吗? 的相关文章

  • 解释一下这个令人困惑的 dojo 教程声明语法

    我正在阅读使用的语法道场的声明 http dojotoolkit org documentation tutorials 1 8 declare 用于班级创建 描述很混乱 The declare function is defined in
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 在 PhoneGap 应用程序中打开用 HTML 和 CSS 制作的 PDF

    我的 iPad 应用程序在 Phone Gap 中遇到一个奇怪的问题 问题是我必须通过链接在我的应用程序中打开 PDF 文档 当我单击打开 PDF 的链接时 它会向我显示没有反向链接的 PDF 文档 因此 当我通过链接在应用程序中打开 PD
  • 使用 VSCode 的 EJS 文件缩进错误

    我在 VSCode 上遇到 EJS 文件问题 每次保存文件时 格式化程序都会应用错误的缩进 在每个 EJS 标识符下方 下一行向右移动 缺少正确的垂直对齐 我使用 ejs 的 HTML 格式并安装了 DigitalBrainstem 的 E
  • 平均分配固定大小容器的空间。 Flexbox 的案例?

    如何设计 HTML CSS 结构 将固定大小的容器水平分成三部分 第一部分的高度应与其内容需求一样高 第二部分和第三部分将共享剩余的空间五五十 无论它们的内容如何 如果其内容的大小超过此限制 则该部分应该是可滚动的 它的 HTML 部分很简
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 为什么Promise中的代码会同步执行? [复制]

    这个问题在这里已经有答案了 在我的项目中 我有一个很长时间运行的操作 所以我决定将其放入Promise因为我认为这样我就可以在里面的代码继续执行其他操作Promise正在跑步 调试的时候发现外面的代码Promise仅当里面的代码执行Prom
  • 如何在单击按钮时清除反应挂钩中的间隔

    我正在用反应钩子构建一个简单的计时器 我有两个按钮启动和重置 当我单击开始按钮时 handleStart 函数工作正常 计时器启动 但我不知道如何在单击重置按钮时重置计时器 这是我的代码 const App gt const timer s
  • 如何使用 HTML 和 CSS 在我的网站上显示社交图标?

    我拼命尝试向我的网站添加一些图标 但无法让它们正确显示 我想要的只是一个包含图像并在线显示它们的容器 然后我想在该容器和图像之间添加一些填充 仅此而已 看这里我的方法 如果有人可以帮助我并纠正我的代码 使其真正有效 我会非常高兴 在我的 H
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 将默认搜索文本添加到搜索框 html

    我正在努力将 搜索 文本添加到搜索框 我正在努力实现 onfocus 消失文本 And onblur 重新出现文本 到目前为止 我已经实现了这一点 但我必须将其硬编码为 html eg
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • 为什么 console.log() polyfill 不使用 Function.apply()?

    我一直在看一些流行的console log 包装 填充 保罗 爱尔兰的 http paulirish com 2009 log a lightweight wrapper for consolelog 本阿尔曼的 http benalman
  • 如何在 CSS 中将容器内的多个 div 居中

    我正在测试像 Windows Metro 风格的中心分隔线 container height 300px width 70 background EEE margin 10px auto position relative block ba
  • jQuery UI 对话框 - 关闭后无法打开

    我有一个问题jquery ui dialog box https jqueryui com dialog 问题是 当我关闭对话框然后单击触发它的链接时 除非刷新页面 否则它不会再次弹出 如何在不刷新实际页面的情况下回调对话框 下面是我的代码
  • 在什么情况下,使用 HTTP/2 单独加载图像会比使用 HTTP/1.1 中的精灵一次加载所有图像慢?

    HTTP 2 使多路复用连接成为可能 从而消除了与服务器的多个连接的需要 通过单个连接 可以将许多单独的图像发送到客户端 这避免了将多个图像组合成一个并使用 CSS 将其分开的旧图像精灵模式 我很好奇精灵在 HTTP 2 世界中是否仍然会更
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • 如何在存储库中正确处置 Linq to SQL DataContext?

    在 Rob Conery 风格的 ASP NET MVC 应用程序中 您通常有一个存储库 public class CustomerRepository DataContext dc new DataContext public IQuer
  • 对tearDown (@After) 方法进行断言是否错误?

    即使我有多个测试用例 如果逻辑不同 所有测试用例的输出也必须相同 所以我正在考虑如何概括它们并仅放置一次 Assert 方法 有没有比这更好的方法 static public class Tests private static Strin
  • 致命错误:无法解析主机 github.com

    我正在尝试将文件从本地存储库推送到远程存储库 我看到了这一点 致命错误 致命 无法访问 https github com vinivasundharan abcd git https github com vinivasundharan a
  • MS ACCESS SQL 查询 Excel 工作表

    SELECT f card serial num count 1 AS CardRxCnt FROM Excel 8 0 HDR Yes Database C Users Mike Desktop er xls er AS f WHERE
  • 推导 Lambda 捕获类型

    我最近发现捕获constlambda 中的按值对象 意味着 labmda 主体内的变量 即 lambda 的数据成员 也是const 例如 const int x 0 auto foo x x is const int 此行为在第 8 1
  • PyTorch - nn.Linear 权重的形状

    昨天我遇到了这个问题 https stackoverflow com questions 53462493 shape of pytorch model parameter is inconsistent with how its defi
  • sql查询根据同一个表中的三个不同列值将一列转换为两列

    我有一张如下表 equipment type machine num status datestamp RR 1 9 2021 08 20 10 39 36 430 RR 2 1 2021 08 20 10 39 36 430 RL 4 2
  • 在 DataGridView 上移动行时的可视标记

    用户在我的 DataGridView 中上下拖动行 我有向下拖动的逻辑 但我希望有一个黑色标记 指示放开鼠标后该行将放置的位置 Microsoft Access 的示例 http img718 imageshack us img718 81
  • HTML5:使用 JavaScript 检测您是在移动设备上还是在 PC 上? [复制]

    这个问题在这里已经有答案了 我可以使用什么 javascript 代码来检测用户使用的是 HTML5 移动还是 PC Mac 浏览器 几年前我就在研究这个问题 简而言之 您无法 100 可靠地做到这一点 似乎有两种常用方法来提供 最佳猜测
  • RGiesecke dll 导出模板

    我需要创建一个可以从 PowerBuilder 12 5 调用的 dll 我在以下位置找到了 RGiesecke DllExport 页面 https sites google com site robertgiesecke Home up
  • 使用 PyQt 绘制由多个点组成的线

    我想使用 PyQt 在 Python 脚本中通过鼠标单击绘制一条由多个点组成的线 我需要桥的所有坐标 并且希望能够删除该线 这是我的脚本完成所有工作 除了图形线条绘制本身 它只是打印它所做的事情 usr bin python3 import
  • 如何防止 pthread 中读写锁中的写入者饥饿

    我对 nix 系统 例如 Linux 上 POSIX Pthreads 中的读写锁有一些疑问 我想知道读写锁的默认偏差是什么 即它是否更喜欢读取而不是写入 反之亦然 它是否提供一些 api 来更改此默认行为 posix pthread 是否
  • Codeigniter:加入无法使用相同名称和 ID 的列

    我希望能够将两个表连接在一起 然而因为我论坛桌 has column name and my 论坛类别 column name 我无法显示两个名字 在我的 select 上 如果我使用像 this gt db gt select f nam
  • 如何在 PHP 中将字符串从多行转换为单行?

    PHP 是否有一个字符串函数可以将多行字符串转换为单行字符串 我正在从包含多行的 API 获取一些数据 例如 p Some Data p p Some more Data p p Even More Data p 我将该数据分配给一个变量
  • 在android中选择文件后找不到文件错误

    我想在我的 Android 应用程序中打开 pdf 文件 现在我可以浏览 pdf 文件 浏览文件后我得到文件未找到当我检查文件是否存在时出错 现在选择文件后我选择的文件 Uridata getData 就好像 content com and
  • 停止在传单中传播“点击”事件

    在我们正在使用的一个项目中Leaflet随着Leaflet markercluster插入 纵观整个Leaflet的来源我发现它附加了 collapse 函数到地图的click事件 因此每当我单击地图时 它就会收缩之前扩展的集群 现在 我想
  • OCMockito 捕获原始类型?

    如何使用 OCMockito 捕获具有原始值的参数 MKTArgumentCaptor 似乎只能捕获对象类型 Xcode 提示 整数转换不兼容的指针 对于原始论证 你必须跳一点舞蹈 假设我们模拟了 NSMutableArray 并想要验证对
  • 在自定义主页和产品类别档案中显示 WooCommerce 产品属性

    以下代码在产品类别存档页面上显示产品属性 并且基于 在特定的 Woocommerce 产品类别档案页面上显示产品属性 https stackoverflow com questions 53510707 display product at
  • 使用 Java 8 Stream API 查找枚举值

    假设有一个名为 Type 的简单枚举 定义如下 enum Type X S1 Y S2 private String s private Type String s this s s 查找给定的正确枚举s使用带有 for 循环的静态方法可以
  • setAttribute 会自动转义 HTML 字符吗?

    我正在调查我们系统中的一个错误 其中链接的标题属性被设置为类似于click if value gt 400但实际显示的工具提示是click if value gt 400 该标题值是由用户输入定义的 因此原始工程师对文本进行了转义 这样就不