bognerf/laravel-purify

Laravel 包,用于包含 HTMLPurify

v1.5 2023-03-08 13:33 UTC

This package is auto-updated.

Last update: 2024-09-08 17:21:12 UTC


README

coverage report Latest Version on Packagist Total Downloads

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