问题标签 [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.
jsp - Struts2标签默认转义HTML?
除非escapeHtml="false"
明确设置,否则<s:property>
标签默认转义 HTML:
是否<s:set>
也有这种行为?
ruby-on-rails - Rails 3 - 如何转义 Flash 消息
Rails 是否应该自动转义 Flash 消息?如果没有,如何确保消息被转义(不使用CGI::escapeHTML
)?
经过一番搜索,我发现它应该被转义,并且得到了 html_safe 一条消息以显示 html。但是当我尝试
它显示为粗体YO而不是<b>YO</b>
. 请注意,字符串对象本身不是 html_safe。
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>
标签而不是渲染它们。
jsf - f:selectItem itemEscaped=false 不在 p:selectOneButton 标签中转义 HTML
我正在使用 PrimeFaces 5.3。我在 ap:selectOneButton 中有下一个 f:selectItem
它直接显示了这个 html 代码:
而是显示字体真棒图标。
有什么想法或建议吗?
android - Android 的 Html.escapeHtml 和 TextUtils.htmlEncode 有什么区别?我什么时候应该使用其中一种?
Android 有两种不同的方式来转义/编码字符串中的 HTML 字符/实体:
Html.escapeHtml(String)
,在 API 16 (Android 4.1) 中添加。文档说:返回给定纯文本的 HTML 转义表示。
TextUtils.htmlEncode(String)
对于这个,文档说:对字符串进行 Html 编码。
阅读文档,他们似乎都做了几乎相同的事情,但是,在测试它们时,我得到了一些非常神秘的(对我来说)输出。
例如。输入:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
/li>Html.escapeHtml
给出:而
/li>TextUtils.htmlEncode
给出:
所以似乎第二个转义/编码引号("),但第一个没有,虽然第一个编码欧元符号,但第二个没有。我很困惑。
那么这两种方法有什么区别呢?每个转义/编码哪些字符?这里的编码和转义有什么区别?我什么时候应该使用其中一种(或者我应该,喘着粗气,同时使用它们?)?
jsp - 如何从存储的 JSP (JSTL) 变量中删除 XML 转义字符?
我正在尝试比较 jsp 文件中两个字符串的值。这两个字符串都包含一个撇号'
。这些字符串有些来自不同的来源。
当我像这样直接比较两个字符串时:
比较返回错误。但是,当我打印出这两个值时,我看到
迈克的绿色
迈克的绿色
在上一步中,这些字符串被修剪为这不是空格问题。无论出于何种原因,当存储为变量时,这两个中的一个与 xml 转义撇号一起存储
为了证明这一点,我将比较修改为以下内容:
此比较返回 true。因此,两个字符串之一在存储时具有文字 xml 转义版本的撇号。
是否有更有效的方法来转义存储的 jsp 变量中的任何 xml 字符串? 这是一种非常丑陋的比较方式,而且它不容易扩展,好像未来的字符串有其他不正确转义的字符,那么我需要在这个逻辑中添加更多代码。
javascript - 在 ejs 中使用 <%- tag v/s <%= tag 有什么好处?
什么时候应该使用 <%- 标签?由于 <%- 未转义,它不会让应用程序容易受到攻击吗?
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 后再向用户显示它?
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符号“<”,“>”呈现转义:“<”,“>”;
json - 如何以 Sendgrid API 接受的格式将 html 嵌入到 json 中?
我一直在尝试使用 Sendgrid API 发送 HTML 电子邮件,但我未能将 html 嵌入到 json 请求中。
这是我尝试发送的 html 示例(emailtpl
):
我尝试过的事情:
- html.EscapeString(emailtpl)
- strconv.Quote(emailtpl)
- 在 json 模板中使用反引号`
- 用单引号将 json 模板中的值包装起来。
- base64.StdEncoding.EncodeToString([]byte(emailtpl)) 仅显示 base64 乱码。
第 1 项和第 5 项是 Sendgrid 接受的唯一解决方案,但发送的 html 不正确(如屏幕截图所示)。
项目 #2 - #4 都会导致状态 400 错误请求。
有谁知道如何将 html 嵌入到 Sendgrid 接受并正确呈现的 Sendgrid API 请求中?