WordPressでの画像投稿できちんと個人情報を消す方法を考える

WordPress
WordPress(2)
この記事は約10分で読めます。

ブログに画像を追加するのは当たり前にすることですよね。WordPressではブラウザにドロップするだけで、追加できますし、クリックしていくだけで簡単に投稿に挿入することができます。

…ところが、スマホやカメラは、撮影したときの情報を画像に記録していますし、WordPressもアップロードしたファイルの情報を活用しようとしますから、何気なく画像を使っていると意図せず個人情報が残ったままになってしまうことがあります。

というわけで、この記事では「WordPressで画像投稿をする際に公開されてしまう可能性がある個人情報」と、「手間をかけずにそれらの個人情報を取り除く方法」を順を追って考えていきます。

まずは、WordPressで画像を記事に載せるときの手順の確認

さて、WordPressで画像を記事に載せるときは一般的に次の手順になります。

  1. 画像を用意する
  2. 投稿ページから「メディアを追加」を選択
  3. ポップアップしてきたウィンドウで「アップロードするファイルをドロップまたはファイルを選択」してアップロード
  4. アップロードしたファイルを記事に挿入

簡単ですね!何も考えなければとても簡単です。
それでは、これらの手順についてどこに個人情報が含まれているのか一つずつ見ていくことにします。

画像を用意する

まずは画像を用意する段階です。この段階でも、気を付けなければならないことがあります。

画像に含まれている個人情報

画像ファイルには、画像そのもの以外の情報(EXIF 、コメントとか)がいろいろと含まれています。たとえば、ファイル管理のためのコメントであったり、カメラやスマホが撮影したときに埋め込んだ情報です。もちろんこれらのメタ情報は、自分でファイルをを管理するためには役に立ちますが、これらをそのままにして画像を公開してしまうと、不用意に個人情報を晒してしまうことになりかねません。たとえば写真から位置情報がわかってしまうと、住んでいる場所がバレてしまったりします。

こういった情報は、基本的に消えるようにしておくのが安全です、あとから記事でいくらでも必要な情報を付け加えていくことはできますからね。また、作業量をなるべく減らしたいのでアップロード時に自動でやってくれるのがベストです。

画像に含まれている個人情報をプラグインで削除する

WordPressの画像処理系のプラグインには、こういったメタデータを削除する機能が基本的に備わっているみたいなのでそれを使うのが良さそうです。

今回は無料の範囲で十分使えそうなEWWWというプラグインを見つけました。

EWWW – For a free WordPress image optimizer and no file size limits. Just remember it works on your own server.

いつものWordPressプラグインと同じように管理画面→プラグイン→新規追加 から検索してインストールします。
メタデータの削除は、EWWWの場合は管理画面から「設定」→「EMMM Image Optimizer」→ 「Basic」→ Remove Metadata にチェックが入っていることを確認します。

References
画像の最大サイズを設定できる機能も便利

EWWWを使えば大きすぎる画像のアップロード時に自動的にリサイズする設定ができるので、ついでに設定してしまうと便利です。ブログで使う画像は容量の関係でできれば小さいほうがよいので、最大サイズを設定してしまったほうが事故が少ないと思います。

最大サイズとしては、1024×1024もあればブログの横幅には足りると思いますが、WordPressが自動で作る大サイズのサムネイルが1024×1024なので、余裕を持たせて2048×2048にしてもいいかもしれません。ただ、1024×1024と2048×2048では単純計算で4倍容量が違うので、サムネイルから元画像へのリンクを設定したときの影響が少し気になります。

EWWWの管理画面から「設定」→「EMMM Image Optimizer」→ 「リサイズ」 → Resize Images から設定できます

EWWWの動作にはPHPのexec関数が必要

私はサーバーにwpXを使っているのですが、PHP関数の制限設定で「exec」のチェックを外す必要がありました。
exec関数が無効状態でEWWWをインストールすると次のメッセージが表示されました

EWWW Image Optimizer requires exec() to perform local compression. Your system administrator has disabled the exec() function, ask them to enable it.
An API key or ExactDN subscription will allow you to offload the compression to our dedicated servers instead.

この状態では画像のリサイズはできましたが、メタデータの削除はできませんでした。

ファイル名に含まれている個人情報を削除する

ファイル名にも個人情報が含まれている場合があります。例えば、写っている人物の名前がファイル名になっているとかだと、アップロードするだけだと、画像ファイル名はそのまま使われてしまいます。そのままにして画像を公開してしまうと、名前バレとかしてしまいます。これも基本的に消えるようにしておいて、あとから記事で情報を付け加えていく形にするのが安全ですね。

アップロード時にファイル名を変更する

これはあまり方法が見つかりませんでした。

「Media File Renamer」というプラグインが見つかったけど、イマイチでした。アップロード時の機能はEXIF情報から自動でファイル名を設定してくれるとかそういう機能だったのでちょっと違う感じでした。

【WordPress】アップロードしたファイル名をランダムな文字列にする【プラグイン不要】 | れいぶろぐ

結局、上の記事を参考に自分で調整しました。
以下のコードを、「外観」 → 「テーマエディター」から function.phpを選んで一番下に貼り付ければOK。

この方法のデメリットは元のファイルを特定するのが難しくなってしまうことですね。

今回はアップロードした日付がファイル名になるようにしました。
WordPressは同じファイル名の場合、「2019-06-07-連番」の形で勝手に名前を変更してくれるから同じ日付を付けて大丈夫です。

ただしそのままだとタイトルには元のファイル名が自動的につくので必要があれば変更してください(私は空にしています)。

function.php(追記)

function rename_file_to_date($fileName) {
$last_pos = strrpos($fileName, ‘.’);
if ($last_pos) {
$Exts = ‘.’.substr($fileName, $last_pos + 1);
} else {
$Exts = ”;
}
$now = new \DateTime(‘now’);
$now->setTimeZone(new \DateTimeZone(‘Asia/Tokyo’));
$fileName = $now->format(‘Y-m-d’).$Exts;
return strtolower($fileName);
}
add_filter(‘sanitize_file_name’, ‘rename_file_to_date’, 10);

ちなみに、日付の何日の部分が不要なら、’Y-m-d’を’Y-m’に変更すればOKです。これで月ごとの連番になります。

いっそのこと次のようにファイル名を固定値にしてしまうのもありかもしれません。

function.php(追記)

function rename_file($fileName) {
$last_pos = strrpos($fileName, ‘.’);
if ($last_pos) {
$Exts = ‘.’.substr($fileName, $last_pos + 1);
} else {
$Exts = ”;
}
return “img”.$Exts;
}
add_filter(‘sanitize_file_name’, ‘rename_file’, 10);

ただしこの場合拡張子毎に別の連番になるので、自分で整理するには不便かもしれません。

画像をアップロードする

次に、画像をアップロードするときに気を付けることを考えます。

アップロード時の設定項目

アップロードするとWordPressのメディアライブラリに追加されます。ここでの設定項目について見ていきます。
これらの設定項目は基本的には必須なものはないので、必要なものだけ設定すれば十分という感じですが、自動で設定されるものもあるので、それが都合の悪いものでないかどうかも考えます。

URL

基本的に画像のURLは変更できません。そして、一度アップロードした後は基本的にファイル名も変更できません(プラグインを使えばできるみたいです)。具体的なファイルの場所でいうと、アップロードされたファイルは、アップロードした月ごとのフォルダに自動的に分けて保存されます。そのフォルダがそのままファイルのパス(URL)として使われます。たとえば、「https://sanzenki.com/wp-content/uploads/2019/06/2019-06-15.jpg」こんな感じです。個人的には日時依存のURLになってしまうのはあまり好きではないですが、これは、サーバのパフォーマンスの都合上、全て同じフォルダに入れるわけにもいかない、ということもあるかと思うので致し方ありません。

タイトル

アップロード時は元のファイル名がタイトルに自動的に設定されます。WordPress内での扱いは、PC上でのファイル名と同じような扱われ方と考えると良いかと思います。

しかし、試してみた限りではエディタに挿入するときに生成されるHTMLのソースコードには使われていませんでした。となると今はこれも下の「説明」と同じくメディアライブラリの検索対象でしかないのか…と思いきや、WordPressには「添付ファイルのページ」というものがあるらしく、このページは基本的に公開状態らしいです。「メディアライブラリ」から画像を選んで「添付ファイルのページを表示」から公開されていることが確認できるし、画像を記事に挿入するときに、リンク先を「添付ファイルのページ」にすると画像のリンク先になります。というわけで、添付ファイルのページは一般的にはアクセスされることは少ないページですが、基本的に公開状態なので、タイトルも公開されるものと考えたほうがよさそうです。

キャプション

画像の説明として表示するテキストです。
画像を挿入するたびに同じテキストをセットするような使い方をする場合は、キャプションにテキストをセットしておけば、使い回せる可能性があることがメリットでしょうか。
キャプションを設定しておくと画像を投稿に挿入したときに画像+テキストのレイアウトになります。

画像を投稿に追加するときにキャプションを付けるかオンオフできないのは、あるなら全部につけろよってことなのでしょうか。これは不便だと思います。

ちなみに、画像にキャプションがついていると投稿に追加するときショートコードで追加されますが、次のようにすれば、CaptionショートコードにHTMLのクラスを追加することはできるみたいなので、キャプションのついた画像のスタイルの変更は可能です。

投稿内容(一部)

WordPressの画像編集画面(赤で囲ってあるのがトリミング)

トリミング機能もここにあります。確かにこの機能を利用するとトリミングはできるのですが、元の画像がなくなるわけではないことに十分に注意する必要があります。元の画像が残ったままだとサーバの容量を圧迫する…だがそれ以上に問題なのは元の画像も公開状態のままということです。

元の画像のURLがabc.jpgだとすると、トリミング後の画像のURLはabc-e1560960860343.jpgの形になる。

つまり、トリミング後の画像URLから元画像のURLが推測できてしまうため、もとの画像は隠しておきたい場合には使ってはいけません。

また、サーバの容量の観点からも、トリミングして使いたい画像は、トリミング後にアップロードすることをおすすめします。

後記

というわけで、順に見てきましたが、思ったよりも考えることがたくさんあったように思います。WordPressはあまり個人情報を隠すことは意識していないのでしょうね。もともと公開するためのツールですし、海外ではもっと実名文化が一般的であることを考えると、そもそも隠したいという考え方のほうが、ズレた考えなのかもしれません。

コメント

タイトルとURLをコピーしました