aldin-sxr/mongo-sanitize

一种简单、无依赖性的防御 MongoDB 查询选择器注入攻击的工具。

v1.0.0 2019-10-18 21:15 UTC

This package is auto-updated.

Last update: 2024-09-19 07:49:06 UTC


README

Build Status

一个简单、无依赖的 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 目录下。

许可证

该库遵循 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。