Java:检测对 JSON 不正确的控制字符
2022-09-03 01:36:20
我正在重新发明轮子,并在Java中创建自己的JSON解析方法。
我正在通过(非常好!)关于 json.org 的文档。我唯一不确定的部分是它在哪里说“或控制角色”
由于文档非常清晰,并且JSON非常简单易实现,因此我想我会继续要求规范而不是松散。
如何正确去除 Java 中的控制字符?也许有一个Unicode范围?
编辑:拼图中(通常?)缺失的部分
我被告知,在定义的范围1 2之外还有其他控制字符在标签中可能很麻烦。<script>
最值得注意的是字符U + 2028和U + 2029,行和段落分隔符,它们充当换行符。将换行符注入字符串文本的中间很可能会导致语法错误(未终止的字符串文本)。3 个
虽然我相信这不会构成XSS威胁,但添加额外的规则用于标签仍然是一个好主意。<script>
- 只需简单并用符号对所有非“ASCII可打印”字符进行编码即可。这些字符一开始就不常见。如果您愿意,可以将其添加到白名单中,但我确实建议使用白名单方法。
\u
- 如果您不知道,请不要忘记(不区分大小写),这可能会导致HTML脚本注入到带有字符的页面。默认情况下,这些字符都不是 JSON 编码的。
</script
</script><script src=http://tinyurl.com/abcdef>