Binput 是 Laravel 的输入保护器


README

Laravel Binput 由 Graham Campbell 创建并维护,是一个用于 Laravel 的输入保护器,可以防止接收到的任何输入中的潜在危险元素(如 <script> 标签)造成损害。它利用了我的 Laravel Security 包,该包使用 voku/anti-xss 清理输入。您可以查看 变更日志版本发布安全策略许可行为准则贡献指南

Banner

Build Status StyleCI Status Software License Packagist Downloads Latest Version

安装

此版本需要 PHP 8.0-8.3 并支持 Laravel 9-11。

要获取最新版本,只需使用 Composer 依赖该项目。

$ composer require "graham-campbell/binput:^11.1"

安装后,如果您没有使用自动包发现,那么您需要在您的 config/app.php 中注册 GrahamCampbell\Security\SecurityServiceProviderGrahamCampbell\Binput\BinputServiceProvider 服务提供者。

您还可以选择性地为我们的外观指定别名

        'Binput' => GrahamCampbell\Binput\Facades\Binput::class,

配置

Laravel Binput 不需要配置。只需遵循简单的安装说明即可!

使用方法

Binput

这是最感兴趣的类。它绑定到 ioc 容器上的 'binput',可以通过 Facades\Binput 外观访问。有一些公共方法值得关注。

具有相同 api 的 'all''get''input''only''except''old' 方法与 Laravel 请求类中找到的方法类似,除了它们都接受两个额外的参数。第一个额外参数是一个布尔值,表示是否应该修剪输入。第二个额外参数是一个布尔值,表示是否应该进行 XSS 清理。这两个额外参数都默认为 true。

公共 api 中还添加了两个额外的功能。第一个是名为 'map' 的方法,它将重映射 'only' 方法的输出。该 'map' 函数需要第一个参数为关联数组。第二个方法是 'clean' 函数。它接受三个参数。第一个是要清理的值(它可以是一个数组,并将递归迭代并清理),最后两个是 trim 和 clean,它们的行为与前面相同。

不在 binput 类上找到的任何方法实际上都会回退到 Laravel 请求类,使用动态调用函数,因此请求类上的每个其他方法都以完全相同的方式在 Laravel 请求类上可用。

Facades\Binput

此外观将动态地将静态方法调用传递给ioc容器中的 'binput' 对象,默认情况下是 Binput 类。

BinputServiceProvider

此类不包含感兴趣的公共方法。应将此类添加到 config/app.php 中的提供者数组。此类将设置ioc绑定。

真实示例

在这里,您可以看到这个包是多么简单易用。

// request input data: ['test' => '123', 'foo' => '<script>alert(\'bar\');</script>    ']

$input = Binput::all(); // ['test' => '123', 'foo' => '']

安全

如果您在这个包中发现了安全漏洞,请发送电子邮件至 [email protected]。所有安全漏洞都将得到及时处理。您可以在此处查看我们的完整安全策略 这里

许可证

Laravel Binput 依据 MIT许可证(MIT) 授权。

企业版

作为Tidelift订阅的一部分提供

graham-campbell/binput 的维护者以及数千个其他包的维护者正在与Tidelift合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,提高代码健康性,同时支付您实际使用的依赖项的维护者。了解更多 信息。