bognerf / laravel-purify
Laravel 包,用于包含 HTMLPurify
v1.5
2023-03-08 13:33 UTC
Requires
- php: ^7.4|^8.0
- ezyang/htmlpurifier: ^4.13
- illuminate/contracts: ^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
Requires (Dev)
- orchestra/testbench: ~3.8.6 || ^4.8 || ^5.2 || ^6.0
- phpunit/phpunit: ^9.3
- vimeo/psalm: ^4.4
This package is auto-updated.
Last update: 2024-09-08 17:21:12 UTC
README
laravel-purifier
包含了由 HTMLPurifier 提供的著名库 ezyang/htmlpurifier。由于它当然利用了 Laravel 方便的包自动发现功能,您只需要求一次此库并发布其资产即可。
之后,您可以通过 Facade 简单地使用 HTMLPurifier
$sanitizedString = \Purify::purify($potentiallyMaliciousString);
请注意
- 不建议禁用 HTMLPurifier 的缓存
- HTMLPurifier::purify() 或自本包以来 \Purify::purify() 进行了一些密集的解析,并且仅在必要时使用。您不需要净化已转义的字符串,如通过
{{ $string }}
在 Laravel Blade 中包含的字符串。但是,您确实应该考虑在通过{{!! $string !!}
包含的字符串上使用 \Purify::purify(),结果为{{!! \Purify::purify($string) !!}
。
安装
Composer
$ composer require bognerf/laravel-purify
发布
$ php artisan vendor:publish --provider="Bognerf\Purify\PurifyServiceProvider"
这将复制配置文件 purify.php
到您的 Laravel 配置目录,并且它还将创建 Laravel 存储框架目录下的 purify
文件夹,用于一些 HTMLPurifier 的缓存和序列化文件。
配置
在此库中,HTMLPurifier 的默认配置应该可以有效地抵御 XSS 攻击和 HTML 及 URL 中的其他恶意字符串。因此,目前没有可以更改其行为进行配置的内容。
缓存目录
默认情况下,HTMLPurifier 的缓存目录设置为 LARAVEL_ROOT/storage/framework/purify
。您可以在 config/purify.php
中更改它或通过 .env 作为 PURIFY_CACHE_DIR
。确保目录可由您的 web 服务器用户或组写入。
如果您出于任何原因想要禁用缓存,请将 PURIFY_CACHE_DIR
设置为 null
。
编码
嗯,我们今天不应该使用与 UTF-8
不同的任何内容,更改此参数有些不鼓励,但您可以在 config/purify.php
中进行或通过 .env 作为 PURIFY_ENCODING
。