Laravel HTMLPurifier封装——Stevebauman/Purify完全指南
purify An HTML Purifier / Sanitizer for Laravel 项目地址: https://gitcode.com/gh_mirrors/pur/purify
项目介绍
Stevebauman/Purify 是一个专为 Laravel 框架设计的 HTMLPurifier 包装器,由 ezyang 开发的 HTMLPurifier 库提供强大支持。此包允许开发者在 Laravel 应用中轻松地对用户提交的 HTML 内容进行安全过滤,确保输出的内容无恶意代码,从而提升网站的安全性。它遵循 MIT 许可证,兼容 PHP 7.4 及以上版本,以及 Laravel 7.0 或更高版本。
项目快速启动
安装
要在你的 Laravel 项目中集成 Purify,首先通过 Composer 添加依赖:
composer require stevebauman/purify
安装后,发布配置文件以使其在你的项目中生效:
php artisan vendor:publish --provider="Stevebauman\Purify\PurifyServiceProvider"
基本使用
清理字符串
清理用户输入的 HTML 字符串非常简单,直接使用 Purify
的 clean
方法即可:
use Stevebauman\Purify\Facades\Purify;
$input = '<script>alert("有害脚本")</script> <p style="border:1px solid black" class="text-gray-700">测试</p>';
$cleaned = Purify::clean($input); // 返回: '<p>测试</p>'
清理数组
若需批量处理数组中的字符串,可以直接传入数组:
$array = [
$input,
$input // 示例重复输入
];
$cleanedArray = Purify::clean($array);
var_dump($cleanedArray); // 输出清理后的数组
应用案例和最佳实践
-
动态配置:对于不同的场景,可以通过传递配置数组来调整过滤规则。
$config = ['HTML.Allowed' => 'div,b,a[href]']; $cleaned = Purify::config($config)->clean($input);
-
配置管理:配置文件允许定义多个配置集,模拟数据库、邮件配置的做法,按需调用不同的配置。
-
缓存策略:默认情况下,Purify会在首次运行后缓存其定义到指定的缓存驱动中,减少后续请求的处理时间。生产环境中推荐使用,但开发调试时可通过设置
'serializer' => null
禁用。
典型生态项目
虽然这个特定的开源项目专注于Laravel框架内的HTML过滤,它的存在促进了Laravel生态系统中关于用户生成内容安全处理的最佳实践。通过集成Purify,Laravel应用能够更安全地展示来自用户的HTML数据。虽然没有直接列举“典型生态项目”,但在实际应用中,任何处理用户评论、文章发表、论坛帖子等交互式内容的Laravel项目,都会是Purify发挥作用的典型场景。开发者还可以结合Eloquent模型的属性类型转换(比如使用PurifyHtmlOnGet
),实现自动的数据净化,这已成为一种常见的最佳实践。
以上就是Stevebauman/Purify的快速上手及最佳实践概述,适合希望在 Laravel 项目中加强用户输入HTML安全性处理的开发者。
purify An HTML Purifier / Sanitizer for Laravel 项目地址: https://gitcode.com/gh_mirrors/pur/purify