medilies / xssless
清除您的富文本中的XSS威胁。
v0.4.0
2024-08-13 20:54 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.9
- symfony/process: ^7.1
Requires (Dev)
- laravel/framework: ^11 || 10
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.2
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.11
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
README
为什么使用Xssless
- 您的应用程序具有一个 富文本编辑器,并且您想防止所有XSS。
- 您需要完整的HTML5 & CSS3支持。
- 您希望在无需深入研究白名单配置的情况下,允许所有安全的HTML元素、它们的属性和CSS属性。
默认驱动程序与 OWASP 建议一致
... OWASP 推荐使用 DOMPurify 进行HTML净化。
需求
- PHP >= 8.2
- ext-json
- Node >= 18
- NPM
安装
使用composer安装此包
composer require medilies/xssless
对于非Laravel项目,选择一个配置并运行以下代码
$config = new Medilies\Xssless\Dompurify\DompurifyCliConfig('node', 'npm'); (new Medilies\Xssless\Xssless) ->using($config) ->setup();
对于Laravel项目,运行以下命令
php artisan xssless:setup
用法
使用 Medilies\Xssless\Dompurify\DompurifyCliConfig
(new Medilies\Xssless\Xssless) ->using(new Medilies\Xssless\Dompurify\DompurifyCliConfig) ->clean($html);
使用 Medilies\Xssless\Dompurify\DompurifyServiceConfig
$config = new Medilies\Xssless\Dompurify\DompurifyServiceConfig( host: '127.0.0.1', port: 63000 ); $xssless = (new Medilies\Xssless\Xssless) ->using($config); /** * It is better to have this part in a separate script * that runs continuously and independently from your app */ $xssless->start(); $xssless->clean($html);
Laravel用法
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="xssless-config"
这是发布配置文件的内容
return [ 'default' => 'dompurify-cli', 'drivers' => [ 'dompurify-cli' => new DompurifyCliConfig( node: env('NODE_PATH', 'node'), // @phpstan-ignore argument.type npm: env('NPM_PATH', 'npm'), // @phpstan-ignore argument.type binary: null, tempFolder: null, ), 'dompurify-service' => new DompurifyServiceConfig( node: env('NODE_PATH', 'node'), // @phpstan-ignore argument.type npm: env('NPM_PATH', 'npm'), // @phpstan-ignore argument.type host: '127.0.0.1', port: 63000, binary: null, ), ], ];
运行以下命令(并非所有驱动程序都需要)
php artisan xssless:start
使用外观
Medilies\Xssless\Laravel\Facades\Xssless::clean($html);
更新日志
有关最近更改的更多信息,请参阅 更新日志。
贡献
有关详细信息,请参阅 贡献指南。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。