Safe SVG

説明

Safe SVG は、WordPress で SVG のアップロードを許可する最良の方法です !

サイトに影響を与える SVG/XML の脆弱性を阻止するためにサニタイズされていることを確認しながら、SVG のアップロードを許可することができます。 また、メディア ライブラリにアップロードした SVG をすべてプレビューすることもできます。

現在の機能

  • サニタイズされた SVG – サニタイズされていないファイルのアップロードを許可して、WordPress サイトにセキュリティ ホールを開かないでください。
  • SVGO Optimisation – Runs your SVGs through the SVGO tool on upload to save you space. This feature is disabled by default but can be enabled by adding the following code: add_filter( 'safe_svg_optimizer_enabled', '__return_true' );
  • メディア ライブラリで SVG を表示 – どの SVG が正しいかを推測する時代は終わりました。WordPress メディア ライブラリでSVG プレビューを有効にします。
  • アップロードできるユーザーを選択 – SVG のアップロードを WordPress サイトの特定のユーザーに制限するか、誰でもアップロードできるようにします。

最初は #24251 の概念実証です。

SVG のサニタイズは、次のライブラリを通じて行われます: https://github.com/darylldoyle/svg-sanitizer

SVG Optimization is done through the following library: https://github.com/svg/svgo.

ブロック

このプラグインは1個のブロックを提供します。

  • Safe SVG Display the SVG icon

インストール

WordPress ディレクトリからインストールするか、ファイルをダウンロードして解凍し、 /wp-content/plugins/ ディレクトリにアップロードします

FAQ

許可された属性とタグを変更できますか ?

はい、 svg_allowed_attributes および svg_allowed_tags フィルターを使用して行うことができます。
返されなければならない 1 つの引数を取ります。 例については、以下を参照してください:

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;
} );

評価

2023年8月16日 1 reply
I don't understand why this isn't in core wordpress. Plugin integrates flawlessly into the website and causes no issues.
2022年11月30日 1 reply
Great little plugin that does exactly what it says. And does it easily. (Still not sure why SVGs are not supported natively but that's another discussion) Thank you, job well done!
69件のレビューをすべて表示

貢献者と開発者

Safe SVG はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Safe SVG” は19ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Safe SVG” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

2.2.0 – 2023-08-21

2.1.1 – 2023-04-05

2.1.0 – 2023-03-22

2.0.3 – 2022-09-01

2.0.2 – 2022-06-27

2.0.1 – 2022-04-19

2.0.0 – 2022-04-06

  • Added: New filter, safe_svg_use_width_height_attributes, that can be used to change the order of attributes we use to determine the SVG dimensions (props @dkotter, @peterwilsoncc).
  • Changed: Documentation updates (props @j-hoffmann, @jeffpaul, @Zodiac1978).
  • Fixed: Use the viewBox attributes first for image dimensions. Ensure we don’t use image dimensions that end with percent signs (props @dkotter, @peterwilsoncc).
  • Fixed: Make sure we use the full size SVG dimensions rather than the requested size, to avoid wrong sizes being used and duplicate height and width attributes (props @dkotter, @cadic).
  • Fixed: Ensure the tmp_name and name properties exist before we use them (props @dkotter, @aksld).

1.9.10 – 2022-02-23

Note that this release bumps the WordPress minimum version from 4.0 to 4.7 and the PHP minimum version from 5.6 to 7.0.

1.9.9 – 2020-05-07

  • Fixed: Issue where 100% width is accidentally converted to 100px width (props @joehoyle).

1.9.8 – 2020-05-07

  • Changed: Underlying library update.

1.9.7 – 2019-12-10

  • Changed: Underlying library update.

1.9.6 – 2019-11-07

  • Security: Underlying library update that fixes a security issue.

1.9.5 – 2019-11-04

  • Security: Underlying library update that fixes some security issues.

1.9.4 – 2019-08-21

  • Fixed: Bug causing lots of error log output to do with safe_svg::fix_direct_image_output().

1.9.3 – 2019-02-19

  • Fixed: Bug causing 0 height and width SVGs.

1.9.2 – 2019-02-14

  • Fixed: Warning about an Illegal string offset.
  • Fixed: Issue if something other than a WP_Post object is passed in via the wp_get_attachment_image_attributes filter.

1.9.1 – 2019-01-29

  • Fixed: Warning that was being generated by a change made in 1.9.0.

1.9.0 – 2019-01-03

  • Changed: If an image is the correct ratio, allow skipping of the crop popup when setting header/logo images with SVGs.

1.8.1 – 2018-11-22

  • Changed: Don’t let errors break upload if uploading an empty file
  • Fixed: Featured image display in Gutenberg. Props @dmhendricks 🙂

1.8.0 – 2018-11-04

  • Added: Pull SVG dimensions from the width/height or viewbox attributes of the SVG.
  • Added: role=”img” attribute to SVGs.

1.7.1 – 2018-10-01

  • Changed: Underlying lib and added new filters for filtering allowed tags and attributes.

1.7.0 – 2018-10-01

  • Added: Allow devs to filter tags and attrs within WordPress.

1.6.1 – 2018-03-17

  • Changed: Images will now use the size chosen when inserted into the page rather than default to 2000px everytime.

1.6.0 – 2017-12-20

  • Added: Fairly big new feature – The library now allows <use> elements as long as they don’t reference external files!
  • Fixed: You can now also embed safe image types within the SVG and not have them stripped (PNG, GIF, JPG).

1.5.3 – 2017-11-16

  • Fixed: 1.5.2 introduced an issue that can freeze the media library. This fixes that issue. Sorry!

1.5.2 – 2017-11-15

  • Changed: Tested with 4.9.0.
  • Fixed: Issue with SVGs when regenerating media.

1.5.1 – 2017-08-21

  • Fixed: PHP strict standards warning.

1.5.0 – 2017-06-20

  • Changed: Library update.
  • Changed: role, aria- and data- attributes are now whitelisted to improve accessibility.

1.4.5 – 2017-06-18

  • Changed: Library update.
  • Fixed: some issues with defining the size of an SVG.

1.4.4 – 2017-06-07

  • Fixed: SVGs now display as featured images in the admin area.

1.4.3 – 2017-03-06

  • Added: WordPress 4.7.3 Compatibility.
  • Changed: Expanded SVG previews in media library.

1.4.2 – 2017-02-26

  • Added: Check / fix for when mb_* functions are not available.

1.4.1 – 2017-02-23

  • Changed: Underlying library to allow attributes/tags in all case variations.

1.4.0 – 2017-02-21

  • Added: Ability to preview SVG on both grid and list view in the wp-admin media area
  • Changed: Underlying library version.

1.3.4 – 2017-02-20

  • Fixed: SVGZ uploads failing and not sanitising correctly.

1.3.3 – 2017-02-15

  • Changed: Allow SVGZ uploads.

1.3.2 – 2017-01-27

1.3.1 – 2016-12-01

  • Changed: Underlying library version.

1.3.0 – 2016-10-10

  • Changed: Minify SVGs after cleaning so they can be loaded correctly through file_get_contents.

1.2.0 – 2016-02-27

  • Added: Support for camel case attributes such as viewBox.

1.1.1 – 2016-07-06

  • Fixed: Issue with empty svg elements self-closing.

1.1.0 – 2015-07-04

  • Added: I18n.
  • Added: da, de ,en, es, fr, nl and ru translations.
  • Fixed: Issue with filename not being pulled over on failed uploads.

1.0.0 – 2015-07-03

  • 初回リリース。