在Laravel中,最优的自定义验证规则方法

打印 上一主题 下一主题

主题 845|帖子 845|积分 2535

在 Laravel 应用步伐中,自定义验证规则通常放置在服务提供者(Service Provider)中。

以下是将自定义 xss_clean 验证规则放置在服务提供者的步骤:

  • 创建一个新的服务提供者
    如果你的应用步伐还没有自定义的服务提供者,你可以创建一个。在 app/Providers 目次下创建一个新的 PHP 文件,例如 AppServiceProvider.php(如果还没有的话)。
  • 注册自定义验证规则
    在你的服务提供者中的 register 方法或者 boot 方法中注册自定义验证规则。通常保举在 boot 方法中注册,因为它在全部服务提供者被注册之后被调用。
    以下是代码示例:
  1. // app/Providers/AppServiceProvider.php
  2. namespace App\Providers;
  3. use Illuminate\Support\ServiceProvider;
  4. use HTMLPurifier;
  5. use Illuminate\Support\Facades\Validator;
  6. class AppServiceProvider extends ServiceProvider
  7. {
  8.     /**
  9.      * Bootstrap any application services.
  10.      *
  11.      * @return void
  12.      */
  13.     public function boot()
  14.     {
  15.         Validator::extend('xss_clean', function ($attribute, $value, $parameters, $validator) {
  16.             $config = HTMLPurifier_Config::createDefault();
  17.             $purifier = new HTMLPurifier($config);
  18.             return $purifier->purify($value) === $value;
  19.         });
  20.     }
  21.     /**
  22.      * Register any application services.
  23.      *
  24.      * @return void
  25.      */
  26.     public function register()
  27.     {
  28.         // 注册其他服务
  29.     }
  30. }
复制代码
确保你的服务提供者在 config/app.php 文件中的 providers 数组中被注册:
  1. 'providers' => [
  2.     // 其他服务提供者...
  3.     App\Providers\AppServiceProvider::class,
  4. ],
复制代码
将自定义验证规则放在服务提供者中有几个利益:


  • 构造性:将自定义验证逻辑集中在一个地方,便于维护和管理。
  • 可重用性:一旦定义,你可以在整个应用步伐中的任何地方使用这个验证规则。
  • 遵循框架结构:这是 Laravel 保举的方式来扩展框架的功能。
    末了,不要忘记在 composer.json 文件中添加 htmlpurifier/htmlpurifier 作为依赖,并运行 composer install 来安装 HTMLPurifier 库。这样,你就可以在 Laravel 应用步伐中使用自定义的 xss_clean 验证规则来防止 XSS 攻击了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表