【发布时间】:2020-09-12 12:18:48
【问题描述】:
我有一个任意字符串。我想将MyString 放在一个 HTML 文档中,例如
<html><body>Text bla <b>MyString</b> bla bla</body></html>
我不想让 MyString 使用标签进行任何 HTML 格式设置,但我也不想使用 &charcode; 转义每个字符(这是我的后备计划)。
将&lt;、&gt; 和&amp; 替换为&lt;、&gt; 和&amp;(以及用<br> 替换换行符)是否足够?如果没有,还有什么?
更多上下文:这是为了将用户提供的字符串以格式化的方式放入 JLabel 中,该 JLabel 还包含其他文本(因此仅设置标签的样式是不够的)。
【问题讨论】:
-
@user2864740 酷。介意给我看一个吗?
-
嗯,我删除了之前的评论以避免走“包含库 X”路线。我还特别关注问题标题。 Swing 中的用法,尽管这与似乎暗示更一般的上下文的第一句话略有不同。 cheatsheetseries.owasp.org/cheatsheets/… 可能有用,虽然它没有直接回答这个问题。 (有一个用于 Java 的 OWASP 库,其中确实包含此类支持。)
-
@user2864740 即使那个库也以某种方式做到了。我对实现这一目标所需的东西比仅仅使用某些东西更感兴趣。这就是为什么我想知道我的想法是否正确,如果不正确,我错在哪里。 :)
-
参见the OWASP cheat-sheet 链接中的规则 #1,其中列出了要转义的 6 个字符:
&, <, >, ", ', /。无论是否需要(在所有情况下).. -
@user2864740 已经阅读,非常感谢!
标签: java html swing input-sanitization