darylldoyle/safe-svg

启用SVG上传并对其进行清理,以阻止WordPress网站中的XML/SVG漏洞

安装次数: 193,452

依赖项: 2

建议者: 0

安全: 1

星星: 267

关注者: 49

分支: 31

开放问题: 17

类型:wordpress-plugin

2.2.6 2024-08-28 16:23 UTC

README

Safe SVG

Support Level WordPress tested up to version GPL-2.0-or-later License Dependency Review WordPress Playground Demo

E2E test PHP Compatibility PHPCS PHPUnit CodeQL

启用SVG上传并对其进行清理,以阻止WordPress网站中的XML/SVG漏洞。

概述

Safe SVG是WordPress中允许上传SVG的最佳方式!

它允许您允许SVG上传,同时确保它们被清理以防止SVG/XML漏洞影响您的网站。它还允许您在媒体库的所有视图中预览上传的SVG。

当前功能

  • 清理后的SVG - 不要通过允许上传未清理的文件来在WordPress网站上打开安全漏洞。
  • SVGO优化 - 在上传时通过SVGO工具运行您的SVG,以节省空间。此功能默认禁用,但可以通过添加以下代码启用:add_filter( 'safe_svg_optimizer_enabled', '__return_true' );
  • 在媒体库中查看SVG - 不再需要猜测哪个SVG是正确的,我们将在WordPress媒体库中启用SVG预览。
  • 选择谁可以上传 - 限制WordPress网站上某些用户的SVG上传或允许任何人上传。

最初是#24251的证明概念。

SVG清理是通过以下库完成的: https://github.com/darylldoyle/svg-sanitizer.

SVG优化是通过以下库完成的: https://github.com/svg/svgo.

要求

安装

通过WordPress目录安装或下载,解压缩并将文件上传到您的/wp-content/plugins/目录。

常见问题解答

我们可以更改允许的属性和标签吗?

是的,这可以通过使用svg_allowed_attributessvg_allowed_tags过滤器来完成。它们接受一个必须返回的参数。下面是示例

add_filter( 'svg_allowed_attributes', function ( $attributes ) {

    // Do what you want here...

    // This should return an array so add your attributes to
    // to the $attributes array before returning it. E.G.

    $attributes[] = 'target'; // This would allow the target="" attribute.

    return $attributes;
} );


add_filter( 'svg_allowed_tags', function ( $tags ) {

    // Do what you want here...

    // This should return an array so add your tags to
    // to the $tags array before returning it. E.G.

    $tags[] = 'use'; // This would allow the <use> element.

    return $tags;
} );

支持级别

稳定:10up不打算为此开发任何新功能,但仍将响应错误报告和安全问题。我们欢迎PR,但任何包含新功能都应该很小且易于集成,不应包括破坏性更改。我们打算将此测试到最新的WordPress版本。

变更日志

所有Safe SVG的显著变更均记录在CHANGELOG.md中。

贡献

请阅读CODE_OF_CONDUCT.md以获取有关我们行为准则的详细信息,CONTRIBUTING.md以获取有关向我们提交pull请求的详细说明,以及CREDITS.md以列出Safe SVG的维护者、贡献者和使用的库。

你喜欢看到这些吗?

Work with us at 10up