最初の状況
私が設定しているサイトでは、アップロード/ダウンロードを保護し、ユーザーの役割/機能に基づいてそれらへのアクセスを制限するという分野全体を調べていました。もちろん、私はここで(一般的な)トピックに関連する以前の質問のいくつかを読みました。参照の理由から、私が見つけた最も重要で興味深いものを参照します。
- ユーザーがログインしていない場合にアップロードを保護する方法
- アップロードされたファイルへのアクセスを制限するには?
- 特定のフォルダ内のファイルへのアクセスを制限する
- メディアのアップロードをプライベートにする方法は?
- PHPダウンロードスクリプトを `functions.php`にマージ
補足事項
一般に、ワードプレスのインストールのセキュリティをさらに向上させることは悪い考えではありません-たとえば、あなたの保護wp-config.php
-あなたができる、そしてすべきことはたくさんあります。やり方はたくさんあります。私は主に私のアップロード/ダウンロードについて懸念しているこの質問のコンテキストにいます。
WordPressのアップロードは保護されていません。uploads
次のようにして防止しない限り、誰でもフォルダを参照できます.htaccess
。
Options All -Indexes
.htaccess
ファイルには、内側に配置する必要があるuploads
フォルダ。しかし、それはそれらを実際に保護することではなく、単にファイルを見つけることを難しくします。さらにhotlinking
、に基づいて本質的にアクセスを制限することもできますreferrer
-これは少し異なるケースですが、私はそれについて言及しましたが、これ以上詳しく説明しませんが、それに関する多くの情報を見つけることができます。
もちろん、投稿を非公開にしたり、適切なテンプレートファイルを使用してカスタム投稿タイプを作成したりして、その投稿タイプを非公開にすることもできますが、これはファイルを保護しません。is_user_logged_in()
またはのような条件文でファイルをラップする場合も同様is_admin()
です。
余談ですが、ファイルを安全に保護することを約束しているプラグインはたくさんありますが、それらの多くはそうするふりをしているだけです。その理由のいくつかは上記にあります。誰もが知っているわけではないと確信しているので、私はそれを指摘しているだけなので、注意してください。
目的
私の意図は、(一部の)アップロードとダウンロードへのアクセスを制限できるようにすることでした。そして、偶然ではなく、または誰かがファイル名を知っている場合を除いて、不要な人がアクセスできないようにするために、ファイルは本当にプライベートで安全でなければなりません。結局のところ、特定の人だけが例外なくアクセスできるはずです。
さらに、私はサイト全体を民営化する必要はありませんでした。実際、それは逆効果です-それは公開プレゼンテーションの目的で使用されます。さらに、私はこのソリューションを簡単に使用できるようにしたいと考えました。これは、よくあることですが、それを扱う人々の一部が正確にはコンピュータの専門家ではないという単純な理由のためです。
質問
したがって、質問は、(一部の)アップロードとそれぞれのダウンロードへのアクセスを制限する(比較的)簡単な方法はありますか?そして、私が実施したように、それは本当にそれらを保護し、安全にする方法を意味しますか?