我正在使用JavaScript从隐藏字段中提取值并将其显示在文本框中.隐藏字段中的值已编码.
例如,
<input id='hiddenId' type='hidden' value='chalk & cheese' />
Run Code Online (Sandbox Code Playgroud)
被拉进去
<input type='text' value='chalk & cheese' />
Run Code Online (Sandbox Code Playgroud)
通过一些jQuery从隐藏字段中获取值(此时我丢失了编码):
$('#hiddenId').attr('value')
Run Code Online (Sandbox Code Playgroud)
问题是,当我chalk & cheese
从隐藏字段中读取时,JavaScript似乎失去了编码.为了逃避chalk & cheese
和amp;
,我想编码保留.
是否有一个JavaScript库或jQuery方法将对字符串进行HTML编码?
我知道实体<
和>
用于<
和>
,但我很好奇这些名称代表什么.
是<
代表" 左标签 "之类的东西还是只是代码?
它们是否与XML相同,也许加上空间one(
)?
我发现了一些HTML转义字符的巨大列表,但我不认为它们必须被转义.我想知道需要逃脱的内容.
我正在寻找一种方法来解决这个问题:
hello < world
Run Code Online (Sandbox Code Playgroud)
对此:
hello < world
Run Code Online (Sandbox Code Playgroud)
我可以使用sed,但如何在不使用神秘的正则表达式的情况下实现这一目标?
我应该怎么做才能阻止Spring MVC中的XSS?现在我只是把我输出用户文本的所有地方放到JSTL <c:out>
标签或fn:escapeXml()
函数中,但这似乎容易出错,因为我可能会错过一个地方.
是否有一种简单的系统方法来防止这种情况?也许像过滤器或什么?我通过@RequestParam
在控制器方法上指定参数来收集输入.
我从服务器获取JSON数据,其中一个字段包含转义的html(实际上是一个电子邮件正文):
<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r\n</head>\r\n<body dir="auto">\r\n<div>Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito</div>\r\n<div><br>\r\n<a
(更多...)
我正试图用AngularJs渲染它.
以下不起作用:
<div ng-bind-html-unsafe="mail.htmlbody"></div>
Run Code Online (Sandbox Code Playgroud)
我认为这是正常的,因为html实际上已被转义.我应该先取消它吗?Angular能否通过一些可用的服务来解决html问题?
如果我像这样使用$ sce:
scope.mail.htmlbody = $sce.trustAsHtml(scope.mail.htmlbody);
Run Code Online (Sandbox Code Playgroud)
显示源html,检查我可以看到内容被引用的元素.换句话说,在页面中显示源html而不是正在呈现的html.也许我错过了什么?
似乎最好使用&
转义,而不是简单地键入&符号(&).
但是,在WordPress或硬编码网站等CMS上写博客文章时,我们是否应该使用X/HTML字符实体引用破折号和其他常见的印刷字符?
例如:
–
是一个短划线( - )
—
是一个短划线( - )
如果不这样做会有什么风险?
escaping character character-encoding special-characters html-escape-characters
HTML 4说明应该转义哪些字符:
四个字符实体引用值得特别提及,因为它们经常用于转义特殊字符:
- "<" 代表<符号.
- ">" 中 代表>符号.
- "&安培;" 代表&符号.
- ""代表"标记".
希望在文本中加入"<"字符的作者应使用"<" (ASCII十进制60)以避免可能与标记的开头混淆(开始标记打开分隔符).同样,作者应该使用">" (ASCII十进制62)在文本而不是">"中,以避免旧的用户代理在出现在带引号的属性值中时错误地将其视为标记的末尾(标记关闭分隔符)时出现问题.
作者应该使用"&" (ASCII十进制38)而不是"&"以避免与字符引用(实体引用打开分隔符)的开头混淆.作者也应该使用"&" 在属性值中,因为在CDATA属性值中允许字符引用.
一些作者使用字符实体引用""" 编码双引号(")的实例,因为该字符可用于分隔属性值.
我很惊讶我在HTML 5中找不到这样的东西.在grep的帮助下,我可以找到的唯一非XML提及是关于已弃用的XMP元素:
请改用pre和code,并将"<"和"&"字符转义为"<" 和"&" 分别.
可以在某种程度上指出这件事的官方消息来源吗?
我需要直接从oracle PL/SQL包发送HTML电子邮件.这几乎没问题.
我有问题的是,一些从表中获取的数据包含之类的东西<S>
,<L>
和类似的片段,有时AR视为HTML标签,即使没有,他们总是忽略,从不显示.
因此,我需要在插入电子邮件正文之前转义此列.
是否有自动将html特殊字符转换为实体的功能?或者我需要replace('<', '<', string)
手动所有特殊字符?
Jest 的toEqual
匹配器在检查相等性时会考虑空格。在测试中格式化预期值时,不可能以匹配包含换行符、制表符等的字符串的方式进行格式化。
Jest 是否提供了一种在匹配时忽略空格的方法?
注意:我编辑了问题以使其更通用。
html ×6
escaping ×4
javascript ×3
angularjs ×1
bash ×1
character ×1
html-encode ×1
html5 ×1
jestjs ×1
jquery ×1
json ×1
jsp ×1
matcher ×1
oracle ×1
plsql ×1
spring ×1
spring-mvc ×1
string ×1
terminology ×1
xss ×1