概要
WEB制作の現場で、SVGファイルを利用するケースはよくあります。
WordPressの場合は、画像はメディアライブラリにアップして利用するのが一般的です。
しかし、普通にやると画像のように弾かれてしまいます。
方法
以下、2つの方法いずれかで対応可能です。
①functions.phpで対応
以下のコードを追記することで、SVGファイルをアップロードすることが可能になります。
function add_file_types_svg($file_types) {
if ( ! isset($file_types['svg']) ) {
$file_types['svg'] = 'image/svg+xml';
}
return $file_types;
}
add_filter('upload_mimes', 'add_file_types_svg');
②プラグインで対応
SafeSVGというプラグインを導入することで対応可能です。
管理画面から普通にプラグインをインストールすれば、SVGファイルがアップロードできるようになります。
後述の脆弱性についても、チェックもしてくれるようです。
SVGアップロードのセキュリティ上の問題点
そもそも、何故WordPressがデフォルトでSVGのアップロードを許可していないかというと、セキュリティ上の問題点があるためです。
SVGの問題点
SVGファイルはXMLに準拠したテキストファイルであり、普通にエディタで編集することも可能です。
なので、その気になれば悪意のあるプログラムを組み込むことも可能なのです。
アップロード許可の判断基準
不特定多数のユーザが画像アップロードを行うことができるサイトの場合は、避けた方がよいでしょう。
そのようなサイトで、どうしてもSVGアップロードを許可したいのであれば、セキュリティチェックを行ってくれるプラグイン等を導入した上で、しっかりと検証してからにしましょう。
逆に、数名の管理者・編集者しか画像アップロードができないサイトであれば、SVGのアップロードを許可しても問題ないでしょう。
参考(外部サイト)
・prebell:SVGファイルとは?形式の特徴やJPEG・PNGとの違いと変換方法を解説
・apricot design:WordPressでSVGファイルをアップロードする方法とその注意点
コメント