Java:检测对于 JSON 不正确的控制字符

2024-03-20

我正在重新发明轮子并用 Java 创建我自己的 JSON 解析方法。

我正在查看(非常好!)文档json.org http://www.json.org/。我唯一不确定的部分是它说的地方“或控制字符”

由于文档非常清晰,并且 JSON 非常简单且易于实现,所以我想我会继续要求规范而不是松散。

我会怎样正确地在Java中去掉控制字符?也许有一个 unicode 范围?


编辑:(通常?)拼图中缺失的一块

I have been informed https://security.stackexchange.com/a/11097/764 that there are other control characters outside of the defined range http://download.oracle.com/javase/6/docs/api/java/lang/Character.html#isISOControl%28int%29 1 https://stackoverflow.com/a/6051582/463304 2 https://stackoverflow.com/a/6051594/463304 that can be troublesome in <script> tags.

Most notably the characters U+2028 and U+2029, Line and Paragraph Separator, which act as newlines. Injecting a newline into the middle of a string literal will most likely cause a syntax error (unterminated string literal). 3 https://security.stackexchange.com/a/11097/764

虽然我相信这不会构成 XSS 威胁,但添加额外的规则仍然是一个好主意<script> tags.

  • 只需简单一点,将所有非“ASCII 可打印”字符编码为\u符号。这些角色一开始就不常见。如果您愿意,您可以添加到白名单,但我确实推荐使用白名单方法。
  • 如果您不知道的话,不要忘记 about </script(不区分大小写),其中可能导致 HTML 脚本注入到您的带有字符的页面</script><script src=http://tinyurl.com/abcdef>。默认情况下,这些字符都不会以 JSON 进行编码。

Will 字符.isISOControl(...) http://download.oracle.com/javase/6/docs/api/java/lang/Character.html#isISOControl%28int%29做?顺便说一句,UTF-16 是 Unicode 代码点的编码...您要在字节级别还是字符/代码点级别进行操作?我建议将从 UTF-16 到字符流的映射留给 Java 的核心 API...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:检测对于 JSON 不正确的控制字符 的相关文章

随机推荐

  • GlobalKey 和 GlobalKeyObject 有什么区别?

    我想知道两者之间的区别 更重要的是现实世界的使用差异GlobalKey and GlobalObjectKey 什么时候使用哪个 什么时候避免 唯一的区别在于他们的方式 操作员行为 全局密钥 https api flutter dev fl
  • 用于查找已安装设备的驱动器号的批处理脚本

    我正在尝试编写一个批处理脚本来定位特定的已安装设备 我在 Windows 7 中 我知道该设备将具有文件夹驱动器 custom 因此我想查看所有可能性来查找具有此路径的设备 这是我到目前为止所拥有的 echo off setLocal En
  • 在 VBA 上声明和定义 FileSystemObject 对象的正确方法是什么?

    我正在阅读有关如何声明 FileSystemObject 对象的信息 发现了令人困惑的信息 是因为声明方式不同吗 我向您展示了我发现的一些声明和定义 FileSystemObject 对象的方法 Dim FSO As FileSystemO
  • 如何在 Git 中重新设置父级

    哪些非交互式 Git 命令实现了更改Before to After在每种情况下 1a 重新养育我 Before A B C D After C D A B 1b 重新养育二 Before C D A B After C A B D 1c 重
  • 当 matplotlib 图中的值“换行”时防止绘图连接

    我正在密谋赤经 https en wikipedia org wiki Right ascension 星历表 http rhodesmill org pyephem index html对于行星 它们具有周期性的属性 它们达到最大值 24
  • Python 中的消息框

    python中有没有一个UI库可以创建消息框或输入框 最好的选择是 tkMessageBox 模块 它应该适用于所有系统 因为 Python 通常会随 Tkinter 一起提供 如果您可以将自己限制在特定操作系统上 那么可能会有更好的选择
  • 我可以在android应用程序中以编程方式找出屏幕宽度吗? [复制]

    这个问题在这里已经有答案了 我可以在android应用程序中以编程方式找出屏幕的宽度吗 我需要绘制画布 但它的宽度应该几乎像屏幕一样 并且我无法在java零件程序中设置match parent 你可以得到默认的Display实例 然后从中读
  • Jenkins网站根路径

    我正在尝试按照此处的说明进行操作 https wiki jenkins ci org display JENKINS Running Jenkins behind Apache https wiki jenkins ci org displ
  • 如何在Android中读写字符设备(如/dev/ttyS0)

    我对Java和Android知之甚少 我想做的是在 Android 应用程序中打开 dev ttyS0 它应该与串行线通信 但我迷路了 我的设备已root 并且从命令行我可以 echo gt dev ttyS0 并从中读取内容 但我在尝试用
  • 使用主题标签解析 JSON

    在 Javascript 中 我无法解析这个JSON里面有一个 我想获取图像 URL 我的尝试是 tracks track 0 image 0 track 把我搞砸了 tracks track name Stressed Out durat
  • Mysql 使用动态数据库名称创建表

    我正在运行时创建数据库 并且我想同时在该数据库中创建表 谁能给我任何想法如何做到这一点 例如 我创建了一个名为 mydb 的数据库 现在 在同一过程中 我尝试创建我使用 mysql 存储过程的表 我的过程输入将是我的数据库名称 所以 我的过
  • 如何使用R检查数据一致性(确保大小写和值不矛盾)?

    假设我有 Person Movie Rating Sally Titanic 4 Bill Titanic 4 Rob Titanic 4 Sue Cars 8 Alex Cars 9 Bob Cars 8 正如你所看到的 亚历克斯有一个矛
  • 我如何创建自己的 HTML 标签?

    我如何在 HTML 或 HTML5 中创建自己的 html 标签 以便我可以制作自己的 html 标签和 css 库 例如
  • 即使明确提供了模块路径,Eclipse 也找不到模块

    我创建了一个模块com company ep位于源文件夹中com company ep 是的 我已经删除了src从构建路径中删除它 在源文件夹中 我有几个包 如下所示 com company ep lt root source folder
  • python 中“除了 Exception as e”是什么意思? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 异常处理的典型结构如下 try pass except Exception e raise else pass finally pas
  • pip 安装失败,并显示:OSError: [Errno 13] 目录权限被拒绝

    pip install r requirements txt失败 但有以下异常OSError Errno 13 Permission denied usr local lib 出了什么问题以及如何解决这个问题 我正在尝试设置Django h
  • 不是函子(或不可遍历)的可折叠示例?

    A Foldable http hackage haskell org packages archive base latest doc html Data Foldable html实例可能是某种容器 因此也可能是Functor以及 的确
  • Python“任务服务器”

    我的问题是 我应该使用哪个 python 框架来构建我的服务器 Notes 该服务器与其客户端进行 HTTP 对话 GET 和 POST 通过 pyAMF 客户端 提交 任务 进行处理 然后在一段时间后检索关联的 task result 提
  • 从封闭的模板类推导返回类型时,函数解析失败

    我一直在尝试为定点类型实现一个复数类 其中乘法运算的结果类型将是输入类型的函数 我需要有一些函数 可以将复数乘以复数 也可以将复数乘以实数 这本质上是代码的简化版本 其中 A 是我的复杂类型 template
  • Java:检测对于 JSON 不正确的控制字符

    我正在重新发明轮子并用 Java 创建我自己的 JSON 解析方法 我正在查看 非常好 文档json org http www json org 我唯一不确定的部分是它说的地方 或控制字符 由于文档非常清晰 并且 JSON 非常简单且易于实