JSON-Threat-Protection: 检测非常规 JSON Payload 的高性能 Rust 库

124 天前
 c137rick

GitHub: https://github.com/ADD-SP/json-threat-protection.rs

JSON 是目前 API 交互的常见数据格式,其灵活的特点也方便构造出一些非常规的数据来影响业务服务:

总之,即使是一个合法的 JSON 字符串,也可以精心构造出一些 Payload 来影响业务。

JSON-threat-protection.rs 是一个高性能的 Rust 库来处理不受信任的 JSON 输入并检查上述约束。

典型应用场景是作为部署在流量入口来提前拒绝非常规的请求。

测试覆盖

本项目除了常规的功能测试,还通过了长期的模糊测试( Fuzzing )以确保可以正确处理不受信任的输入。同时最大程度保持了和 serde_json 的行为一致性。

性能

Dataset Size serde_json + Validation json-threat-protection Faster Comment
kernel_stargazers.json 1.2M 12.996 ms 8.8530 ms 1.46x 1000 stargazers JSON information from torvalds/linux
kernel_stargazers_small.json 568K 5.8825 ms 3.7504 ms 1.56x 472 stargazers JSON information from torvalds/linux
kernel_commits.json 4.6M 45.059 ms 29.682 ms 1.51x 1000 commits JSON infomation from torvalds/linux
tokio_issues.json 5.1M 61.935 ms 33.959 ms 1.82x 1000 issues JSON information from tokio-rs/tokio
tokio_forks.json 6.1M 90.984 ms 45.686 ms 1.99x 1000 forks JSON information from tokio-rs/tokio
tokio_workflow_runs.json 15M 221.89 ms 103.65 ms 2.14x 1000 workflow runs JSON information from tokio-rs/tokio

更多细节见 GitHub 。

HackerNews

如果你觉得这个项目不错,欢迎也来 HackerNews 支持一下本项目。

1083 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX