文件名称:bad_json_parsers:暴露几种编程语言的json解析器中的问题
文件大小:45KB
文件格式:ZIP
更新时间:2024-02-24 14:24:03
security parser json json-parser JSONPython
JSON解析器的嵌套级别 记录几种编程语言的JSON解析器如何处理深度嵌套的结构。 介绍 许多JSON解析器(以及通常的许多解析器)都使用来解析嵌套结构。 这在对解析器进行编程时非常方便,但是会影响解析器可以解析的内容:确实,的大小通常限制为一个比可用RAM小几个数量级的值,这意味着程序级别过多的递归将失败。 最新的两个JSON标准和都说“实现可能会限制最大嵌套深度”。 但是, 规范对嵌套的JSON结构的深度没有任何限制。 这意味着就JSON规范而言,没有定义的嵌套级别正确或不正确,并且在解析嵌套结构时JSON解析器可能会有所不同。 一些递归解析器库实现了安全检查,以避免崩溃的调用程序
【文件预览】:
bad_json_parsers-master
----.travis.yml(5KB)
----parser_dotnet_system_text_json()
--------Program.cs(351B)
--------ParserDotnetSystemTextJson.csproj(178B)
--------.gitignore(19B)
----test_parser.sh(579B)
----parser_java_gson()
--------pom.xml(1022B)
--------src()
--------.gitignore(8B)
----parser_d.d(110B)
----parser_ruby_oj.rb(52B)
----parser_swift()
--------parser_swift()
--------parser_swift.xcodeproj()
--------.gitignore(113B)
----parser_cpp()
--------parser_cpp.cpp(99B)
--------.gitignore(20B)
----parser_python.py(61B)
----parser_haiku.cpp(914B)
----parser_nim.nim(48B)
----parser_php.php(125B)
----parser_c_jansson()
--------parser_c_jansson.c(307B)
--------.gitignore(17B)
--------Makefile(91B)
----LICENSE(1KB)
----test_parser.py(2KB)
----parser_rust()
--------src()
--------Cargo.toml(134B)
--------.gitignore(19B)
----parser_go_jsoniter.go(192B)
----parser-java-jackson()
--------pom.xml(2KB)
--------src()
----parser_elixir()
--------mix.exs(693B)
--------mix.lock(198B)
--------.gitignore(617B)
--------lib()
----parser_ocaml_yojson()
--------parser_ocaml.ml(66B)
--------Makefile(108B)
----unparsable.json(27KB)
----parser_haskell()
--------Setup.hs(46B)
--------parser-haskell.cabal(306B)
--------.gitignore(15B)
--------Main.hs(246B)
----.gitignore(18B)
----parser_dotnet()
--------Program.cs(301B)
--------parser_dotnet.csproj(268B)
--------.gitignore(19B)
----parser_go.go(205B)
----parser_ruby.rb(57B)
----README.md(8KB)
----parser_cpp_rapidjson()
--------parser_cpp_rapidjson.cpp(368B)
--------parser_cpp_rapidjson(29KB)
----utils()
--------binary_search.sh(482B)
--------deep_json_array.sh(296B)
----parser_javascript.js(58B)
----parser_postgresql.sh(203B)
----parser_perl.pl(34B)