solusi sederhana untuk membatasi akses ke (beberapa) unggahan / unduhan

11

Situasi awal

Untuk situs yang saya setting, saya sedang mencari ke seluruh bidang pengamanan unggahan / unduhan dan membatasi akses ke sana berdasarkan peran / kemampuan pengguna. Tentu saja saya telah membaca beberapa pertanyaan sebelumnya terkait dengan topik (umum) di sini, untuk alasan referensi yang paling penting / menarik yang saya temukan:

Catatan tambahan

Secara umum itu bukan ide yang buruk untuk meningkatkan keamanan instalasi wordpress Anda - misalnya melindungi Anda wp-config.php- ada banyak hal yang dapat dan harus Anda lakukan. Ada banyak informasi di luar sana bagaimana melakukannya. Saya dalam konteks pertanyaan ini kebanyakan berkaitan dengan unggahan / unduhan saya.

Upload Wordpress tidak diamankan, semua orang dapat menelusuri uploadsfolder, kecuali Anda mencegahnya dengan .htaccess:

Options All -Indexes

The .htaccessfile harus ditempatkan di dalam uploadsfolder. Tapi itu tidak benar-benar mengamankan mereka, itu hanya membuat lebih sulit untuk menemukan file. Selain itu Anda dapat mencegah hotlinking, membatasi akses berdasarkan referrer- meskipun itu sedikit berbeda saya pikir saya sebutkan itu, saya tidak menjelaskan lebih lanjut, Anda dapat menemukan banyak informasi tentang itu.

Tentu saja memiliki kemungkinan untuk membuat posting pribadi atau membuat jenis posting khusus dengan file templat yang sesuai untuk membuat jenis posting pribadi, tetapi itu tidak mengamankan file Anda. Hal yang sama dapat dikatakan untuk membungkus file dalam kondisi seperti is_user_logged_in()atau is_admin().

Pada sidenote ada banyak plugin di luar sana yang menjanjikan untuk membuat file Anda aman dan terlindungi, tetapi banyak dari mereka hanya berpura-pura melakukannya, beberapa alasan di atas. Saya hanya mengeluarkan itu karena saya cukup yakin bahwa itu tidak diketahui oleh semua orang - jadi, sadarilah itu.

Objektif

Tujuan saya adalah untuk dapat membatasi akses ke (beberapa) unggahan dan masing-masing unduhan. Dan untuk memastikan bahwa tidak ada yang tidak diinginkan dapat memiliki akses ke mereka, bukan secara kebetulan atau jika seseorang mengetahui nama file, file harus benar-benar pribadi dan aman. Bagaimanapun, hanya orang-orang tertentu yang harus memiliki akses tanpa kecuali.

Selain itu saya tidak perlu memprivatisasi seluruh situs, memang itu akan menjadi kontraproduktif - ini digunakan untuk keperluan presentasi publik. Lebih jauh lagi saya ingin solusi mudah digunakan, karena alasan sederhana bahwa beberapa orang yang bekerja dengannya bukan ahli komputer, seperti yang sering terjadi.

Pertanyaan

Karenanya pertanyaannya, adakah (relatif) cara sederhana untuk membatasi akses ke (beberapa) unggahan dan unduhan masing-masing? Dan seperti yang saya lakukan, itu berarti cara untuk benar-benar melindungi dan mengamankan mereka?

Nicolai
sumber
Anda harus menambahkan solusi Anda sebagai jawaban alih-alih menanamkannya dalam pertanyaan.
s_ha_dum
Dan tolong gunakan huruf besar / kecil yang tepat. Dibaca seperti obrolan ...
kaiser
Terima kasih atas kritik yang membangun, saya akan mengedit dan merestrukturisasi dalam waktu dekat.
Nicolai

Jawaban:

8

Saya dengan ini menjawab pertanyaan saya sendiri, karena saya menemukan solusi, tetapi saya benar-benar tertarik dengan pendapat Anda tentang itu. Atau mungkin Anda memiliki solusi yang lebih baik, jika demikian, saya benar-benar ingin ke sini tentang hal itu.

Hasil penelitian

Hasil penelitian saya adalah:
1. mendapatkan file di luar root dokumen, wwwfolder;
2. melarang akses langsung ke folder yang berisi file;
3. biarkan skrip menangani permintaan ke file;
Sumber untuk poin-poin tersebut - setidaknya sebagian besar - termasuk dalam pertanyaan saya.

Larutan

  1. Saya menginstal plugin » wp-downloadmanager «
    • folder yang dipanggil filesakan dibuat di wp-contentdalam proses;
  2. Saya menambahkan .htaccessfile ke filesfolder baru :
    • isi dari .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Saya mengubah satu opsi penting dari plugin:
    • opsi yang saya maksud adalah download method;
    • Saya mengubahnya menjadi output file;
  4. Saya menambahkan beberapa file melalui antarmuka plugin:
    • ada opsi yang disebut allowed to download;
    • yang memungkinkan untuk membatasi akses berdasarkan peran / kemampuan pengguna;
  5. Saya melakukan beberapa pengujian:
    • tidak ada akses langsung ke file - tidak melalui bilah alamat atau wget;
    • unduhan publik dapat dihubungi melalui permalink mereka - Saya memilih »permalink yang bagus: ya« dan »unduh url: id file« pada panel opsi - addressbar / wget juga berfungsi;
    • dilindungi, unduhan terbatas hanya dapat diakses jika masuk sebagai pengguna dengan peran / kemampuan yang benar;

Pikiran penutup

Saya berpikir solusinya cukup banyak mengikuti hasil penelitian. Selain menempatkan file di luar. Tetapi membatasi akses ke / melindungi direktori dan membiarkan skrip menangani permintaan file terpenuhi. Pembatasan akses ditangani oleh .htaccessdan skrip dalam hal ini adalah plugin wp-downloadmanger.

Catatan tambahan

  • sangat penting untuk mengubah download methodkeoutput file
  • dan tentu saja itu adalah suatu keharusan bahwa .htaccessfile ada di tempat

  • untuk memeriksa fakta bahwa plugin mengambil alih peran skrip, lihat wp-downloadmanger.php- tentang baris 207 hingga 227 (versi 1.6.1); ini dimaksudkan sebagai titik pelengkap untuk informasi terkait

Nicolai
sumber