The hottest news from everywhere for everyone!

WordPressにEXEファイルのUP/Down loadのMIMEを追加する

初期値ではセキュリティー上、WordPressでもブラウザでも「EXEファイル」(いわゆる実行形式のファイル)をアップロードしたりダウンロードしたりは出来ない。

それでも、どうしても仕事上とかシステム上的にやむを得ないケースはある。

そんなときにどうすれば出来るようになるか?しかも簡単に。

で、ちょいとWordPressのドキュメントを読むと、

WordPress的には関数を通じて、WordPressのアップロード機能で許可されるMIMEタイプのリストに新しいエントリを追加します。これは、WordPressのフィルターフックupload_mimesを使用して行われていることがわかりました。

WordPressのフィルターフック: 特定の処理やデータを変更するために使用される機能です。これは、WordPressのコア機能やプラグインが提供するデータに対して、ユーザーが独自の処理を適用できるようにする仕組みです。フィルターフックを使用することで、既存のデータを変更したり、処理を追加したりすることが可能です。WordPressの柔軟性と拡張性を高めるために重要な役割を果たしています。

MIMEタイプの追加方法

WordPressでは、upload_mimesと言うフィルターフックを使用して、アップロードを許可するファイルタイプのリスト(MIMEタイプとファイルの拡張子のマッピングを含む)をカスタマイズすることが出来ます。今回試すEXEファイル(application/x-msdownload)のアップロードを許可する方法を書いてみます。

function allow_exe_fille_uploads($mime_types){
$mime_types['exe'] = 'application/x-msdownload'; // EXEファイルのMIMEタイプ
return $mime_types;
}
add_filter('upload_mimes', 'allow_exe_uploads', 1, 1); // 実際に関数を使って追加している部分

これを、WordPressのPlug-in形式にしてインストールして実行すれば、WordPressが内部で管理するアップロード可能なファイルタイプのリストにEXEファイルのMIMEタイプを追加します。

この変更は、WordPressの実行中のインスタンスにのみ適用され、サーバーのPHP設定や他のアプリケーションには影響を与えないものとなります。

その範囲内でのセキュリティを担保させるわけです。

WordPress用プラグインの参考例:CN Simple EXE UpDownloader

<?php
/*
Plugin Name: CN Simple EXE UpDownloader
Plugin URI: http://45.32.35.200/add-mime-for-up-down-load-of-exe-files-to-wordpress/
Description: Allows uploading and downloading of EXE files.
Version:     1.0
Author:     rinmon
Author URI: http://45.32.35.200/
*/

// WordPressに対してEXEファイルのアップロードを許可する
function allow_exe_uploads($mime_types){
   $mime_types[‘exe’] = ‘application/x-msdownload’; // EXEファイルのMIMEタイプを追加
   return $mime_types;
}
add_filter(‘upload_mimes’, ‘allow_exe_uploads’, 1, 1);

// ダウンロードリンクのショートコードを使えるようにする
function generate_download_link($atts){
   $atts = shortcode_atts(array(
       ‘url’ => ”, // デフォルトのURLは空にしておく
  ), $atts, ‘download_exe’);

   $file_url = esc_url($atts[‘url’]); // URLを安全にエスケープ
   return “<a href='{$file_url}’ download>Download EXE File</a>”;
}
add_shortcode(‘download_exe’, ‘generate_download_link’);

使用方法

  1. 上記のコードを「cn-simple-exe-updownloader.php」というファイルに保存します。
  2. 同じディレクトリに「cn-simple-exe-updownloader」と言う名前のフォルダーを作成して、その中に作成したファイルを入れます。
  3. フォルダー「cn-simple-exe-updownloader」を圧縮して「cn-simple-exe-updownloader.zip」を作成します。
  4. WordPressのプラグインの追加で、このZIPファイルを指定してインストールします。
  5. このプラグインを有効化します。
  6. これで、メディアのところで「EXE」ファイルがアップロード出来るようになります。
  7. 投稿やページで [download_exe url="アップロードしたEXEファイルのURL"] ショートコードを使って、ダウンロードリンクを挿入すると、該当のリンクから「EXE」ファイルがダウンロードされます。

セキュリティ上の注意

とは言え、サイトのセキュリティを損なう可能性があります。繰り返しになりますが、そのため、必要な場合にのみ慎重に使用し、サイトのセキュリティ対策を強化する他の措置も併用することが重要です。

リスクと対策

  • 限定的なアクセス許可: EXEファイルのアップロードは、信頼できる管理者や特定のユーザーに限定するべきです。WordPressのユーザー権限を適切に設定し、不必要に広範囲のユーザーにアップロード権限を与えないようにしてください。
  • ファイルの検証: アップロードされたファイルを自動的にスキャンし、ウイルスやマルウェアの存在をチェックするセキュリティプラグインやサービスを利用することが推奨されます。これにより、悪意のあるファイルがシステムに侵入するリスクを低減できます。
  • ユーザー教育: サイトのユーザーや管理者に対して、アップロードされたファイルのリスクについて教育し、安全なファイルのみをアップロードするよう促すことも重要です。
  • セキュリティプラグインの利用: WordPressには、ファイルアップロードのセキュリティを強化するための多数のセキュリティプラグインが存在します。これらのプラグインを利用して、サイトの全体的なセキュリティを向上させることができます。
  • 定期的なバックアップ: 万が一、セキュリティ侵害が発生した場合に備えて、定期的にサイトのバックアップを取得し、復旧計画を準備しておくことが重要です。

EXEファイルのアップロードを許可する場合は、これらのリスクと対策を十分に理解し、慎重に実装する必要があります。セキュリティは常に進化しているため、最新のセキュリティ情報に注意を払い、サイトを保護するための最善の措置を講じてください。

img

Share this article