graham-campbell / binput
Binput 是 Laravel 的输入保护器
Requires
- php: ^8.0.2
- graham-campbell/security: ^11.2
- illuminate/contracts: ^9.0 || ^10.0 || ^11.0
- illuminate/http: ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- graham-campbell/analyzer: ^4.1
- graham-campbell/testbench: ^6.1
- mockery/mockery: ^1.6.6
- phpunit/phpunit: ^9.6.17 || ^10.5.13
- 11.1.x-dev
- v11.1.0
- 11.0.x-dev
- v11.0.0
- 10.0.x-dev
- v10.0.0
- 9.1.x-dev
- v9.1.0
- 9.0.x-dev
- v9.0.1
- v9.0.0
- 8.0.x-dev
- v8.0.2
- v8.0.1
- v8.0.0
- 7.1.x-dev
- v7.1.1
- v7.1.0
- v7.0.0
- 6.2.x-dev
- v6.2.0
- v6.1.1
- v6.1.0
- v6.0.0
- 5.1.x-dev
- v5.1.1
- v5.1.0
- v5.0.0
- 4.0.x-dev
- v4.0.0
- 3.6.x-dev
- v3.6.0
- v3.5.0
- v3.4.0
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.0
- v3.0.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.0
- v2.0.0-RC1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-RC1
- v1.0.0-beta2
- v1.0.0-beta1
- v0.3.1-alpha
- v0.2.0-alpha
- v0.1.0-alpha
This package is auto-updated.
Last update: 2024-09-18 00:15:53 UTC
README
Laravel Binput 由 Graham Campbell 创建并维护,是一个用于 Laravel 的输入保护器,可以防止接收到的任何输入中的潜在危险元素(如 <script>
标签)造成损害。它利用了我的 Laravel Security 包,该包使用 voku/anti-xss 清理输入。您可以查看 变更日志、版本发布、安全策略、许可、行为准则 和 贡献指南。
安装
此版本需要 PHP 8.0-8.3 并支持 Laravel 9-11。
要获取最新版本,只需使用 Composer 依赖该项目。
$ composer require "graham-campbell/binput:^11.1"
安装后,如果您没有使用自动包发现,那么您需要在您的 config/app.php
中注册 GrahamCampbell\Security\SecurityServiceProvider
和 GrahamCampbell\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合作,为构建应用程序时使用的开源依赖项提供商业支持和维护。节省时间,降低风险,提高代码健康性,同时支付您实际使用的依赖项的维护者。了解更多 信息。