WordPressで社外秘情報の誤アップを防ぐ
WordPressで画像をアップする時の誤アップ対策はしていますか?
当記事では比較的簡単にできる、WordPressで社外秘情報の誤アップを防ぐ方法をご紹介します。
目次
アップできる拡張子(ファイル形式)を制限する
WordPressはデフォルトで様々な拡張子のファイルをアップできます。しかし、画像しかアップしない場合は.pdfや.xlsx、.docxなどのファイルをアップできるようにしておく必要はありません。
必要な拡張子のファイルだけをアップできるようにすれば、社外秘のPDFファイルやエクセルファイルなどの誤アップを防ぐことができます。
下記コードをテーマディレクトリ内のfunctions.phpに追記します。
/**
* アップロードを許可するMIMEタイプ
*/
add_filter( 'upload_mimes', function( $mimes ) {
$mimes = array(
'jpg|jpeg|jpe' => 'image/jpeg',
'gif' => 'image/gif',
'png' => 'image/png',
'ico' => 'image/x-icon'
);
return $mimes;
});
upload_mimesというフィルターフックに.jpg、.jpeg、.jpe、.gif、.png、.icoだけを許可するように$mimesを上書きするコールバック関数を登録しています。
投稿画面でPDFファイル(PDF.pdf)をアップしようとすると、左下にこのように表示されます。
これで業務で良く使用されるPDFファイルやエクセルファイル、ワードファイルがアップできなくなります。
他にアップを許可したい拡張子(ファイル形式)がある場合は、MIMEタイプを調べて追加してください。
参考:よくある MIME タイプ – HTTP | MDN
参考:upload_mimes | Hook | WordPress Developer Resources
参考:add_filter() | Function | WordPress Developer Resources
公開ボタンまたは更新ボタンが押される時にアラートを表示する
上記でアップできるファイルに制限をかけましたが、許可しているファイル内に社外秘情報が載っている可能性があります。
そんな場合に備えて、公開ボタンまたは更新ボタンが押される時にアラートを表示します。
下記コードをテーマディレクトリ内のfunctions.phpに追記します。
/**
* 管理画面用JS読み込み
*/
add_action( 'admin_print_scripts-post.php', 'custom_admin_print_scripts' );
add_action( 'admin_print_scripts-post-new.php', 'custom_admin_print_scripts' );
function custom_admin_print_scripts() {
echo '<script>';
echo 'window.addEventListener("load", function() {';
echo 'document.getElementsByClassName("editor-post-publish-button__button")[0].addEventListener("mouseover", function(e) {';
echo 'alert("画像をアップする際は、慎重な作業をお願いします。\n\n-ご注意ください-\n・社内資料の誤アップ\n・個人情報が写っている画像\n・モザイク掛けが必要な画像の、モザイク処理前の画像");';
echo '},';
echo '{once: true});';
echo '});';
echo '</script>';
}
\nは改行です。
これによって管理画面にJavaScriptが読み込まれます。
読み込まれていれば、投稿画面の公開ボタンまたは更新ボタンにカーソルを合わせた時に、このようなアラートが表示されます。
参考:add_action() | Function | WordPress Developer Resources
社外秘情報を誤アップしてしまった時
万が一誤って社外秘情報をアップしてしまった時は、サーバーからファイルを削除しましょう。
管理画面のメディア>ライブラリから該当のファイルを選択して、右下にある「完全に削除する」をクリックすればサーバーから削除できます。
投稿画面で配置したファイルをエディタから削除しただけではサーバーに残り続けます。どこからもリンクされていなくても、URLを指定して直接アクセスできてしまうため注意しましょう。
社外秘情報がアップされていないかの確認
念のために社外秘情報がアップされていないかを定期的に確認しましょう。
- 管理画面のメディア>ライブラリで確認する
- FTPソフトでuploadsディレクトリ内のファイルをダウンロードして確認する
- All In One WP Securityのスキャナー機能を使用して確認する
など様々な確認方法があります。
オススメはAll In One WP Securityというセキュリティープラグインのスキャナー機能を使用して確認する方法です。
All-In-One Security (AIOS) – Security and Firewall
スキャナー機能を使用すると、指定した頻度でサーバー上のファイルの変更を検出してメールで通知してくれます。
通知先として部署のグループメールアドレスを指定しておけば複数人で確認できるため、意図せずアップしてしまったファイルに気付きやすくなるでしょう。
ただし、/home/user/example.com/public_html/のようなフルパスで通知されるため、ファイルをブラウザーで表示させる際に少々パスの加工が必要な点には注意が必要です。
tooolsのTech Blogではこれからも役に立つ情報を発信していきますので、定期的に閲覧していただけると幸いです。