6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Wordpressの画像を保護する

6
Posted at

先日はWordpressを使った会員サイトを作成した際に、
ユーザーの個人情報を持ったファイルや画像を純正機能で
アップロードさせる機会がありました。アップロードしたものは
wp-content/uploadsディレクトリーに入りますので、URLさえ知っていれば
誰でもアクセスできてしまうのは残念なところです。

ユーザーによってアクセスされちゃ困るファイルを制御したい!
ということで、今回は簡単なプラグイン(WP File Protector)を作成しました。
プラグインというよりも、シンプルなphpのクラスですね。

仕組みはシンプルで、uploadsディレクトリ直下に.htaccessファイルを設置し、
ローカルホストからしかアクセスを受けられないようにします。
すべてのメディアURLを書き換えて、プラグインコードをバイパスするようにします。
プラグインの中にwpfp/display_fileというフィルターを用意して、すべての
メディアへのアクセス権限を決定させます。

上記フィルターのデフォルト結果はtrueであるので、functions.phpで
何も記載しなければ、特に制限なくすべてのユーザーがアクセスが可能です。

30分ほどで書いたものなので、バグ等がございましたらごめんなさい…

コードはこちら
https://github.com/web-picker/wp-file-protector

シンプルですが、使ってみて下さい。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?