问题标签 [html-escape]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
961 浏览

jsp - Struts2标签默认转义HTML?

除非escapeHtml="false"明确设置,否则<s:property>标签默认转义 HTML:

是否<s:set>也有这种行为?

0 投票
3 回答
361 浏览

ruby-on-rails - Rails 3 - 如何转义 Flash 消息

Rails 是否应该自动转义 Flash 消息?如果没有,如何确保消息被转义(不使用CGI::escapeHTML)?

经过一番搜索,我发现它应该被转义,并且得到了 html_safe 一条消息以显示 html。但是当我尝试

它显示为粗体YO而不是<b>YO</b>. 请注意,字符串对象本身不是 html_safe。

0 投票
1 回答
1702 浏览

html - 带有占位符的消息属性中的 html 标记 - XSS 潜力

给定消息属性文件中的消息:

message = Change relation <strong>{0}</strong> -> <strong>{1}</strong> to <strong>{2}</strong> -> <strong>{3}</strong>?

如果任何占位符的内容是受用户影响的字符串,我需要对消息进行 html 转义以防止潜在的 XSS(我通过c:out在我的 JSP 模板中使用标签来做到这一点,我想我可以使用 htmlEscape-标签的属性spring:message也是如此,但我认为没有区别)。

但是,这样做会破坏消息中的标记<strong>等,从而导致输出:

Change relation <strong>Peter</strong> -> <strong>Car</strong> to <strong>Carl</strong> -> <strong>Bus</strong>?

我已经在 stackoverflow 上阅读了这里的线程,但它没有解决 XSS。

我正在考虑这些选项:

1) 只需<strong>用单引号替换消息属性文件中的所有标签。那么 html 转义整个消息就没有问题了,缺点是对消息的特定部分的突出显示较少。

2) 将消息拆分为允许在(JSP)模板中单独标记的部分。这感觉就像是为了让标记正确而做的很多工作。

我在这里错过了什么吗?哪个是更好的选择,还是有其他选择?

编辑:如果没有 html 转义消息,就像我希望的那样,就像这样:

将关系Peter -> Car更改为Carl -> Bus

因此,messages.properties 文件中的 html 标记在模板中显示时会被渲染。

转义时,消息就像上面一样,向我显示<strong>标签而不是渲染它们。

0 投票
0 回答
80 浏览

jsf - f:selectItem itemEscaped=false 不在 p:selectOneButton 标签中转义 HTML

我正在使用 PrimeFaces 5.3。我在 ap:selectOneButton 中有下一个 f:selectItem

它直接显示了这个 html 代码:

而是显示字体真棒图标。

有什么想法或建议吗?

0 投票
1 回答
8378 浏览

android - Android 的 Html.escapeHtml 和 TextUtils.htmlEncode 有什么区别?我什么时候应该使用其中一种?

Android 有两种不同的方式来转义/编码字符串中的 HTML 字符/实体:

阅读文档,他们似乎都做了几乎相同的事情,但是,在测试它们时,我得到了一些非常神秘的(对我来说)输出。

例如。输入:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>

  • Html.escapeHtml给出:

    /li>
  • TextUtils.htmlEncode给出:

    /li>

所以似乎第二个转义/编码引号("),但第一个没有,虽然第一个编码欧元符号,但第二个没有。我很困惑。


那么这两种方法有什么区别呢?每个转义/编码哪些字符?这里的编码转义有什么区别?我什么时候应该使用其中一种(或者我应该,喘着粗气,同时使用它们?)?

0 投票
0 回答
113 浏览

jsp - 如何从存储的 JSP (JSTL) 变量中删除 XML 转义字符?

我正在尝试比较 jsp 文件中两个字符串的值。这两个字符串都包含一个撇号'。这些字符串有些来自不同的来源。

当我像这样直接比较两个字符串时:

比较返回错误。但是,当我打印出这两个值时,我看到

迈克的绿色

迈克的绿色

在上一步中,这些字符串被修剪为这不是空格问题。无论出于何种原因,当存储为变量时,这两个中的一个与 xml 转义撇号一起存储

为了证明这一点,我将比较修改为以下内容:

此比较返回 true。因此,两个字符串之一在存储时具有文字 xml 转义版本的撇号。

是否有更有效的方法来转义存储的 jsp 变量中的任何 xml 字符串? 这是一种非常丑陋的比较方式,而且它不容易扩展,好像未来的字符串有其他不正确转义的字符,那么我需要在这个逻辑中添加更多代码。

0 投票
2 回答
58 浏览

javascript - 在 ejs 中使用 <%- tag v/s <%= tag 有什么好处?

什么时候应该使用 <%- 标签?由于 <%- 未转义,它不会让应用程序容易受到攻击吗?

0 投票
1 回答
100 浏览

html - React/Phoenix - 转义 HTML 将在浏览器中短暂闪烁未渲染的 HTML

我正在运行一个使用服务器端渲染的 React/Phoenix 应用程序,我发现当我快速刷新应用程序时,我可以在一瞬间在浏览器中看到来自服务器的未渲染 HTML,然后才能正确渲染. 这只发生在转义的 HTML 上,但我想为这个应用程序使用转义的 HTML,因为我不希望浏览器认为它是安全的。这会在 Chrome 和 Firefox 中发生,但不会在 Safari 中发生。

该应用程序是使用 RePh(我强烈推荐)搭建的——https://github.com/reph-stack/reph——相关的控制器是:

哪个管道数据到index.html.eex

在这个脚手架的默认设置中,它@html被标记为安全的raw-<%= raw @html %>但正如你所看到的,我已经删除了它。

所以无论如何,如果我以“合理”的速度刷新浏览器窗口,就没有问题......但如果我开始快速刷新,我可以在浏览器窗口中简要地看到未渲染的 HTML,例如:

不用说,如果我离开就不会发生这种情况raw。我也尝试了其他一些转义方法,例如Phoenix.HTML.html_escape(html)在控制器中,但出现了同样的问题。

我想这是因为浏览器需要一秒钟的时间来正确解析和呈现转义的 HTML,并且浏览器性能的差异可以归因于不同的布局引擎(也许?)......但我不是这方面的专家,所以我不确定。有什么方法可以强制我的应用程序等到正确呈现 HTML 后再向用户显示它?

0 投票
1 回答
352 浏览

contact-form-7 - wpcf7 动态电子邮件标签内容

描述:

  • WordPress 联系表 7;
  • 使用 smtp 发送邮件;
  • 表单设置:“使用 html-format”+“mail2 使用 html-format”勾选;
  • 表单设置:电子邮件正文:只有一个邮件标签[计算模板];
  • 解决了段落标签的问题(接收时的所有邮件标签都显示在“p”html标签内);

[calculated-template] 是一个用 html 动态填充的邮件标签,基于前端 VueJS2 处理的提交对象;

[calculated-template] 通过挂接操作“wpcf7_posted_data”填充:

vue_handler::handle($data) 接收 $data 数组,其中包含一些可以修改的 wpcf7 数据。$data 数组的内容:

然后 vue_handler::handle($data) 将 html 注入到 email-tag [calculated-template] 中。

问题: 最后 [calculated-template] html-contents 呈现转义(Mailtrap.io,“HTML Source”选项卡):

该片段的主要思想:打开和关闭html-tag符号“<”,“>”呈现转义:“<”,“>”;

0 投票
1 回答
935 浏览

json - 如何以 Sendgrid API 接受的格式将 html 嵌入到 json 中?

我一直在尝试使用 Sendgrid API 发送 HTML 电子邮件,但我未能将 html 嵌入到 json 请求中。

这是我尝试发送的 html 示例(emailtpl):

我尝试过的事情:

  1. html.EscapeString(emailtpl)
  2. strconv.Quote(emailtpl)
  3. 在 json 模板中使用反引号`
  4. 用单引号将 json 模板中的值包装起来。
  5. base64.StdEncoding.EncodeToString([]byte(emailtpl)) 仅显示 base64 乱码。

第 1 项和第 5 项是 Sendgrid 接受的唯一解决方案,但发送的 html 不正确(如屏幕截图所示)。

逃脱屠杀

项目 #2 - #4 都会导致状态 400 错误请求。

有谁知道如何将 html 嵌入到 Sendgrid 接受并正确呈现的 Sendgrid API 请求中?