aldin-sxr / mongo-sanitize
一种简单、无依赖性的防御 MongoDB 查询选择器注入攻击的工具。
v1.0.0
2019-10-18 21:15 UTC
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-19 07:49:06 UTC
README
一个简单、无依赖的 PHP 库,用于防御 MongoDB 查询选择器注入攻击。受同名的 NodeJS NPM 包 mongo-sanitize 启发。
安装和使用
该库可通过 Composer 获取。
composer require aldin-sxr/mongo-sanitize
安装后,将 vendor/autoload.php
包含到您的项目中。
<?php require_once 'vendor/autoload.php'; $data = [ 'hello' => 'world', 'foo' => [ '$eq' => 'bar' ] ]; $cleaned = mongo_sanitize($data); // Cleaned array: // [ 'hello' => 'world, 'foo' => [ ] ]
调用 mongo_sanitize()
函数对您想要清理的数组(用户输入)。该函数会移除所有键名以 $
开头的数组元素(MongoDB 操作符标识符)。该函数也可以递归地在嵌套的数组元素上工作。
测试
所有库方法都附带多个单元测试,这些测试位于 PHPUnit 中,位于 tests/unit
目录下。