我需要对标题属性(工具提示)进行 html 编码吗?

2023-12-29

在我的标记中我使用HTML title attributes我设置的Tooltip各种 ASP.NET 控件的属性,例如asp:Label。这些标题的内容来自数据库,我使用数据绑定语法,例如:

<asp:Label ID="PersonLabel" runat="server" 
    Text='<%# HttpUtility.HtmlEncode(Eval("PersonShortName")) %>'
    ToolTip='<%# HttpUtility.HtmlEncode(Eval("PersonFullName")) %>' />

现在,工具提示似乎在 Windows 和我测试过的浏览器中显示为纯文本。所以 HTML 编码不是我真正想要的,我倾向于删除编码。

例如,如果数据库字段可能包含脚本标签,这会以任何方式存在危险吗?我的问题基本上是:是否始终保证 HTML-title 属性显示为纯文本?它们是否始终显示为工具提示,或者某些浏览器(或操作系统)是否可能以其他方式显示它们并允许并在标题属性中呈现 HTML 内容?

Edit:

看了一些答案,感觉我的问题表达得不太好,所以补充一下:

如果我在上面的代码片段中有一个PersonShortName我的数据库中的“PM”并且作为PersonFullName包含非 ASCII 字符的名称,例如浏览器在工具提示中显示的“Peter Müller”中的变音符号Peter M&#252;ller当我申请时HttpUtility.HtmlEncode就像代码示例中一样 - 这很丑陋。

我还测试了一个简单的 HTML 片段,例如:

<span title="<script>alert('Evil script')</script>" >Hello</span>

title 属性中的脚本未在启用了 Javascript 的浏览器中运行(使用 Firefox 进行测试),而是以纯文本形式显示在工具提示中。因此我的猜测是标题属性始终呈现为纯文本。

但正如 Felipe Alsacreations 在下面回答的那样,存在“丰富的工具提示插件”,可以将标题属性呈现为 HTML。所以在这种情况下编码是一件好事。但我怎么知道呢?

Perhaps HttpUtility.HtmlEncode不是正确的解决方案,我必须仅过滤 HTML 标签,而不对简单的特殊字符进行编码,以确保纯文本正确显示并同时保护“丰富的 HTML 工具提示”。但这看起来是一项成本高昂的工作——仅用于一个简单的工具提示。


始终清理浏览器的输出。

如果像这样的值"><script>blabla</script>作为字段值插入后,用户基本上可以接管您的整个网站。当涉及到验证和正确代码时,它可能会变得一团糟,但脚本仍然会运行。

所以回答你的问题:不,如果用户知道他/她在做什么,则不能保证 HTML 标题属性显示为纯文本。

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

我需要对标题属性(工具提示)进行 html 编码吗? 的相关文章

  • 如何使弹出窗口溢出:在溢出内可见:自动上下文

    我有一个 div 列表 如果超过父框 overflow x 应该滚动 并且在悬停时 我想看到一个弹出窗口 我的问题是 如果我将鼠标悬停在任何子 div 上 弹出窗口将被考虑用于溢出计算 但我只想让它在所有内容之上可见 而不是使其扩展滚动区域
  • 使用 ASP.Net 和 Ajax 的登录页面

    我正在尝试使用 html ajax 和 ASP NET 制作登录页面 数据确实传递给 ajax 函数 但是当我调试 asp 页面时 用户名和密码以 NULL 发送 该代码应该获取用户名和密码 然后返回用户 ID html页面 div Use
  • HTML5 音频暂停不起作用

    document getElementById s currentRadio currentSong pause 目前这并没有暂停音频 而播放它效果很好 document getElementById s currentRadio curr
  • Javascript:刷新父页面而不完全重新加载

    用户通过 fancybox javascript 弹出窗口登录后 我希望重新加载父页面 以便他们可以访问登录的功能 目前我正在这样做 a href class continue Continue a 这很好用 但唯一的问题是它完全重新加载整
  • 使用 flex 将项目与底部对齐

    我正在尝试使用 flex 将父级内部的项目与父级底部对齐 但由于某种原因它不起作用 我究竟做错了什么 login border 1px solid red height 50px display flex login border radi
  • 如何更改谷歌图表标题字体大小?

    如何更改谷歌图表中标题的字体大小 var options title My Daily Activities backgroundColor transparent is3D true 在这样的选项中使用 titleTextStyle va
  • nHibernate 使用 Log4Net 进行日志记录,线程会话问题

    大家好 这里有一个小问题 我正在努力解决这个问题 我目前正在开始使用 nHibernate 由于工作需要 我不得不这样做 并且我在 nHibernate 的会话和多线程方面遇到了一些困难 我想在这里完成的任务是让 Log4Net 将所有内容
  • C# 查询两个数据库的数据

    我目前有一个查询 我正在从两个不同的数据库获取数据 这些数据被附加到一个名为 accountbuys 的列表中 我的第一个表有三个数据条目 3个想要购买股票的帐户 下一张表有 17 个数据点 购买 17 只股票 I am merging t
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • UpdatePanel 破坏 JQuery 脚本

    这是我想做的事情的简化版本 基本上我有一个数据列表 里面有很多东西 当你将鼠标悬停在数据列表中的项目上时 我希望 jquery 隐藏 显示东西 问题是 在我进行数据绑定后 如果 gridview repeater datalist 位于更新
  • OData 实体属性序列化名称与 C# 变量名称不同

    在使用 OData 的 ASP NET Web API 中 我有一个 C 对象 描述允许在 filter 中使用的字段 说我想限制 filter支持仅 filter deviceId gt someValue 随后http www ben
  • 如何使用CSS缩放图像以填充div并保持纵横比?

    我想用一个 div 填充img 保持纵横比并根据需要拉伸宽度或高度以适应 div style width 80px height 80px img src div 我怎样才能实现它 如果图像不是二次方的 则必须将其 放大 并根据哪一侧较大而
  • Firefox 忽略 CSS 中的最小高度

    由于某些原因 最小高度在 Firefox 上不起作用 我尝试在 body 上设置 min height 但 Firefox 完全忽略了它 由于我的页面是动态的 我不能只将高度设置为 100 我应该怎么办 body border 1px so
  • Bootstrap 4 Beta 0 网格系统上的 Rowspan

    您好 我正在开发一个使用 Bootstrap 4 Beta 的电子商务模板 我让它在移动设备上工作 但在桌面设备上我不知道如何让购买按钮保持在标题下 在我的方法中 它出现在 图库 部分下 Desired Desktop Desired Mo
  • Perl:管理 Windows 上的路径编码

    我正在努力处理包含非英文字符的路径 Activestate Perl Windows XP 如何打开 写入 复制等位于包含希腊语 俄语 法语重音字符的路径中的文件 假设我要将 text txt 文件复制到的目录是 C Documents a
  • Bootstrap 4 移动导航栏消失

    我刚刚从 Bootstrap 3 转换为 Bootstrap 4 但我的移动导航栏出现问题 使用切换按钮展开导航栏时 导航消失 我不明白为什么会发生这种情况 导航栏下方有一个大屏幕 但整个移动导航向上移动 如下面的 gif 所示 以下是导航
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 我应该创建一个块还是一个元素 BEM CSS?

    Bem官网说 创建一个块如果一段代码可以被重用并且它不依赖于正在实现的其他页面组件 创建一个元素如果一段代码在没有父实体 块 的情况下无法单独使用 我有一个 关于部分 块 它的元素依赖于父级并且不能在网站中重复使用 如何根据 bem 这段代
  • 如何让 webpack 和 iis express 协同工作?

    I have Angular 2 和 Webpack 2 入门 https github com qdouble angular webpack2 starter它通过 webpack dev server 在节点上运行 我如何使用 web

随机推荐

  • 使用 UrlHelper.Action 方法生成 url 时出现空引用异常

    由于某种原因 当某些机器人访问该网站时 会生成一个带有UrlHelper Action方法引发空异常System Web HttpServerVarsCollection Get 我已经做了一些调试 调用堆栈开始尝试从以下位置获取 HTTP
  • 无法使用 android 4.4 旋转模拟器[重复]

    这个问题在这里已经有答案了 我已经将我的sdk更新到最新版本 android 4 4 并启动了模拟器 但现在似乎无法使用CTRL F11旋转屏幕 屏幕发生变化但所有应用程序都没有改变 我不知道这是否是一个相关问题 但我可以看到 即使我创建了
  • 可编辑的组合框,绑定到不在列表中的值

    我有可编辑的组合框 其中首选项目并不总是位于下拉列表中 我希望能够在文本框中手动输入文本 该文本将传播到绑定到 SelectedValue 的字符串 现在 仅当输入的值位于 ComboBox 项中的值中时 绑定到 SelectedValue
  • NameError:名称“N_TOKENS”未定义

    我是 Python 新手 刚刚开始安装 Windows 版 PyCharm 从 Skype 下载了一些示例代码来测试他们的 SkypeKit API 但是 一旦我按下调试按钮 我就会得到 我安装了 Python 2 7 和 Django 1
  • 从 Chrome 开发工具扩展检查 WebSockets 帧

    我想创建一个 Chrome 开发者工具扩展 一个新面板 来分析我们自己网站上的 WebSockets 框架 据我所理解 http developer chrome com extensions devtools network html h
  • SQL Server 中具有多列的“In”子句

    我有一个根据提供的键从数据库检索数据的组件 不过 我希望我的 java 应用程序能够获取单个数据库命中中所有键的所有数据 以加快速度 当我只有一把钥匙时 我可以使用 in 子句 在处理多个键时 我可以在 oracle 中使用以下查询 SEL
  • 如何显示数组中与另一个数组的值相关的值,javascript

    我试图让该名称与与该名称相关的分数一起显示 因此 如果最高分是 98 我希望 Joels 的名字出现在显示屏上 此处显示名字 var names Ben Joel Judy Anne var scores 88 98 77 88 var a
  • 获取日期期间最畅销的 10 种产品

    我想返回用户指定日期内销量最高的 10 种产品 数量最多 我的数据库表 Orders OrderId OrderDate 订单 产品 ProductID OrderID Quantity Products ProductID Product
  • 多线程 Java 应用程序的性能

    我想了解多线程环境中的性能 为此 我编写了一个小测试 在我的机器 四核 Intel Windows XP Sun JDK 1 6 0 20 上运行 结果令人惊讶 该测试基本上是一个线程安全计数器 使用以下任一方法进行同步synchroniz
  • 是否可以安排在特定日期和时间发布?

    我正在使用 Azure DevOps 发布管道来自动化部署 我想安排发布创建在特定的日期和时间进行 但根据下面的屏幕截图 只能选择一周中的几天 并且您不能将触发器指定为仅一次 这是一个问题 因为触发器将导致每周在指定的日期进行发布 并且我们
  • @synchronized vs. NSLock 实例 vs. pthread_mutex_t

    我正在观看一个关于多线程的 2 年前的 教程视频 其中指出 NSLock实例比使用快 3 倍 同步 pthread mutex t比 2 倍快NSLock实例 实际上比 同步 这是真的 我还没有找到任何权威的说法 但我只是想在 StackO
  • 将石墨指标偏移当前时间范围内的最低值

    我有带有 Graphite 指标的 Grafana 我有一个图表显示EnqueueCountActiveMQ 中的某些特定队列 问题是EnqueueCount显示自创建队列以来的所有值 因此当我将 Grafana 中的时间范围缩小到 今天到
  • 向 ggplot 图形添加文件名或其他注释

    我使用 ggplot 来制作大部分图形 这些可以是单面板 也可以是多面的 为了更容易跟踪修订 我想在绘图的角落生成一个包含一些文本的小标签 在伪代码中 我正在寻找这样的东西 generate the initial plot p lt gg
  • WPF/MVVM 在运行时加载用户控件

    我知道有很多关于我的问题的文章 但我找不到解决方案 我是 WPF MVVM 的新手 我尝试了解 MVVM 逻辑 所以我做了一个小项目来理解这一点 对于我以后的应用程序 我想将用户控件动态加载到我的窗口中 在我的 StartView 中 我有
  • UI 的可排序列表的动画过渡

    我正在与一个jQueryUI可排序列表 并且想要在以下情况下为过渡设置动画li当我向上或向下拖动元素时 s 会四处移动 作为Apple已经在他们的iPod app重新排列播放列表的歌曲时 这可能吗 我已经搜索了几个小时 但找不到任何有用的东
  • 立即启用保存文档 NSManagedObjectContext 吗?

    从 10 7 上带有 CoreData 模板的标准 Xcode 基于文档的应用程序开始 我遇到了一些令人沮丧的行为 我确信这是我忽略的简单事情 假设在我的 NSPersistentDocument 子类中 我有这样的东西 连接到窗口中的一个
  • Vim:选择文件后保持位置列表窗口打开

    我需要完全相反的行为这个问题 https stackoverflow com questions 10846598 close location list when selecting file 我的观察是 按下enter在位置列表窗口中的
  • 如何将一列拆分为按日期排序的多列

    当我尝试以正确的格式获取数据库数据时遇到很多问题 我正在寻找按天按列打印数据库输出的方法 我的数据库有两列 一列带有timestamp格式如下YYYY MM DD H M另一列包含与速度相关的数据 我需要按天将速度数据拆分为列 或多或少 我
  • 具有多维(或非标量)输出的 Scipy 过滤器

    有没有类似的过滤器ndimage s 通用过滤器 http docs scipy org doc scipy reference generated scipy ndimage filters generic filter html支持矢量
  • 我需要对标题属性(工具提示)进行 html 编码吗?

    在我的标记中我使用HTML title attributes我设置的Tooltip各种 ASP NET 控件的属性 例如asp Label 这些标题的内容来自数据库 我使用数据绑定语法 例如