(一部の)アップロード/ダウンロードへのアクセスを制限する簡単なソリューション


11

最初の状況

私が設定しているサイトでは、アップロード/ダウンロードを保護し、ユーザーの役割/機能に基づいてそれらへのアクセスを制限するという分野全体を調べていました。もちろん、私はここで(一般的な)トピックに関連する以前の質問のいくつかを読みました。参照の理由から、私が見つけた最も重要で興味深いものを参照します。

補足事項

一般に、ワードプレスのインストールのセキュリティをさらに向上させることは悪い考えではありません-たとえば、あなたの保護wp-config.php-あなたができる、そしてすべきことはたくさんあります。やり方はたくさんあります。私は主に私のアップロード/ダウンロードについて懸念しているこの質問のコンテキストにいます。

WordPressのアップロードは保護されていません。uploads次のようにして防止しない限り、誰でもフォルダを参照できます.htaccess

Options All -Indexes

.htaccessファイルには、内側に配置する必要があるuploadsフォルダ。しかし、それはそれらを実際に保護することではなく、単にファイルを見つけることを難しくします。さらにhotlinking、に基づいて本質的にアクセスを制限することもできますreferrer-これは少し異なるケースですが、私はそれについて言及しましたが、これ以上詳しく説明しませんが、それに関する多くの情報を見つけることができます。

もちろん、投稿を非公開にしたり、適切なテンプレートファイルを使用してカスタム投稿タイプを作成したりして、その投稿タイプを非公開にすることもできますが、これはファイルを保護しません。is_user_logged_in()またはのような条件文でファイルをラップする場合も同様is_admin()です。

余談ですが、ファイルを安全に保護することを約束しているプラ​​グインはたくさんありますが、それらの多くはそうするふりをしているだけです。その理由のいくつかは上記にあります。誰もが知っているわけではないと確信しているので、私はそれを指摘しているだけなので、注意してください。

目的

私の意図は、(一部の)アップロードとダウンロードへのアクセスを制限できるようにすることでした。そして、偶然ではなく、または誰かがファイル名を知っている場合を除いて、不要な人がアクセスできないようにするために、ファイルは本当にプライベートで安全でなければなりません。結局のところ、特定の人だけが例外なくアクセスできるはずです。

さらに、私はサイト全体を民営化する必要はありませんでした。実際、それは逆効果です-それは公開プレゼンテーションの目的で使用されます。さらに、私はこのソリューションを簡単に使用できるようにしたいと考えました。これは、よくあることですが、それを扱う人々の一部が正確にはコンピュータの専門家ではないという単純な理由のためです。

質問

したがって、質問は、(一部の)アップロードとそれぞれのダウンロードへのアクセスを制限する(比較的)簡単な方法はありますか?そして、私が実施したように、それは本当にそれらを保護し、安全にする方法を意味しますか?


ソリューションを質問に埋め込むのではなく、回答として追加する必要があります。
s_ha_dum 2013年

そして、適切な大文字/小文字を使用してください。チャットのように読みます...
カイザー

建設的な批判をありがとう、私はすぐにそれを編集して再構成します。
Nicolai 2013年

回答:


8

解決策を見つけたので、ここで自分の質問に答えますが、それに対するあなたの意見に本当に興味があります。あるいは、もっと良い解決策があるかもしれませんが、もしそうなら、私は本当にここでそれについて説明したいと思います。

研究成果

私の研究結果は次のとおり
でした。1.ファイルをドキュメントルート、wwwフォルダー外に取得します。
2.ファイルを含むフォルダーへの直接アクセスを禁止します。
3.スクリプトにファイルへの要求を処理させます。
それらのポイントのソースは、少なくとも大部分は-私の質問に含まれています。

解決

  1. プラグインをインストールしました» wp-downloadmanager «
    • 呼び出されたフォルダがプロセスfileswp-contentに作成されます。
  2. .htaccess新しいfilesフォルダにファイルを追加しました:
    • の内容.htaccess
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. プラグインの1つの重要なオプションを変更しました。
    • 私が意味するオプションはdownload method
    • に変更しましたoutput file
  4. プラグインインターフェイスを介していくつかのファイルを追加しました。
    • と呼ばれるオプションがありますallowed to download
    • これにより、ユーザーの役割/機能に基づいてアクセスを制限できます。
  5. 私はいくつかのテストを行いました:
    • ファイルへの直接アクセスなし-アドレスバーまたはwgetを介さない。
    • パブリックダウンロードは、パーマリンクからアクセスできます-オプションパネルで»nice permalinks:yes«および»download url:file id«を選択します-addressbar / wgetも機能します。
    • 保護された制限付きダウンロードは、適切な役割/機能を持つユーザーとしてログインした場合にのみアクセスできます。

結論

解決策は研究結果にほぼ従っていると思います。外にファイルを置くことは別として。ただし、ディレクトリへのアクセスの制限/ディレクトリの保護、およびスクリプトによるファイルリクエストの処理は完全に行われます。アクセスの制限はによって処理され、.htaccessこの場合のスクリプトはプラグインwp-downloadmangerです。

補足事項

  • 絶対に必要な変更するdownload methodoutput file
  • もちろん、ファイルを配置することは必須です.htaccess

  • プラグインがスクリプトの役割を引き継いでいるという事実を確認するには、以下を見てくださいwp-downloadmanger.php-207行目から227行目(バージョン1.6.1)。これは、リンクされた情報の補足ポイントとして意味されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.