просте рішення для обмеження доступу до (деяких) завантажень / завантажень


11

Початкова ситуація

Для сайту, який я створюю, я розглядав ціле поле забезпечення завантажень / завантажень та обмеження доступу до них на основі ролей / можливостей користувача. Звичайно, я прочитав деякі попередні питання, пов’язані із (загальною) темою, для ознайомлення з найважливішими / найцікавішими з них:

Додаткові примітки

Як правило, це не дуже гарна ідея додатково покращити безпеку установки WordPress - наприклад, захистити свою wp-config.php- є багато можливостей, які ви можете і повинні зробити. Існує багато інформації, як це зробити. Я в контексті цього питання здебільшого погоджуюся щодо своїх завантажень / завантажень.

Завантаження Wordpress не захищено, кожен може переглядати uploadsпапку, якщо не запобігти її .htaccess:

Options All -Indexes

.htaccessФайл повинен бути поміщений в uploadsпапку. Але це насправді не забезпечує їх безпеку, а просто ускладнює пошук файлів. Крім того, ви можете попередити hotlinking, істотно обмежуючи доступ, referrer- хоча це трохи різний випадок, я вважав, що я це згадую, я не деталізую його, ви можете знайти багато інформації про це.

Звичайно, є можливість зробити публікації приватними або створити користувацький тип публікації з відповідними файлами шаблонів, щоб цей тип публікації був приватним, але це не захистить ваші файли. Те саме можна сказати і для обгортання файлів у таких умовах, як is_user_logged_in()або is_admin().

На стороні є багато плагінів, які обіцяють зробити ваші файли надійними та захищеними, але багато хто з них просто роблять вигляд, що це роблять, деякі причини вище. Я просто висловлюю це, бо я майже впевнений, що це невідомо всімбобі, тому знайте про це.

Об'єктивна

Мій намір полягав у тому, щоб мати можливість обмежити доступ до (деяких) завантажень та відповідно завантажень. І щоб переконатися, що ніхто з небажаних не міг отримати доступ до них, не випадково або якби хтось знав ім'я файлу, файли повинні бути справді приватними та безпечними. Адже лише певні люди повинні мати доступ без винятків.

Крім того, мені не потрібно було приватизувати весь сайт, адже це було б контрпродуктивно - воно використовується для публічної презентації. Крім того, я хотів, щоб рішення було легко застосовано з тієї простої причини, що деякі люди, що працюють з ним, не є саме комп'ютерними експертами, як це часто буває.

Питання

Звідси виникає питання, чи існує (відносно) простий спосіб обмежити доступ до (деяких) завантажень та відповідних завантажень? І як я це здійснив, це означає спосіб справді їх захистити і захистити?


Ви повинні додати своє рішення як відповідь, а не вкладати його у запитання.
s_ha_dum

І будь ласка, використовуйте відповідні великі та малі літери. Читає, як у чаті ...
kaiser

Дякую за конструктивну критику, я скоро її відредагую та реструктурую.
Миколай

Відповіді:


8

Я відповідаю на власне запитання, тому що знайшов рішення, але мені дуже цікаві ваші думки щодо цього. А може, у вас є набагато краще рішення, якщо так, я дуже хотів би тут про це.

Результат дослідження

Результати моїх досліджень були:
1. отримати файли поза корінням документа, wwwпапкою;
2. заборонити будь-який прямий доступ до папки, що містить файли;
3. нехай сценарій обробляє запити до файлів;
Джерела цих питань - принаймні переважно - включені в моє запитання.

Рішення

  1. Я встановив плагін » wp-downloadmanager «
    • filesвсередині wp-contentцього процесу буде створена папка, що називається ;
  2. Я додав .htaccessфайл до нової filesпапки:
    • зміст .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Я змінив один важливий варіант плагіна:
    • я маю на увазі варіант download method;
    • Я змінив це на output file;
  4. Я додав кілька файлів через інтерфейс плагіна:
    • є варіант, який називається allowed to download;
    • що дозволяє обмежити доступ на основі ролі / можливостей користувача;
  5. Я зробив кілька тестувань:
    • немає прямого доступу до файлів - не через адресну панель або wget;
    • публічні завантаження можна отримати через їхні постійні посилання - я вибираю »приємні постійні посилання: так« і »завантажити URL-адресу: ідентифікатор файлу» на панелі параметрів - адресна панель / wget теж працює;
    • захищені, обмежені завантаження доступні лише в тому випадку, якщо ви ввійшли як користувач із правильною роллю / можливостями;

Заключні думки

Я думаю, що рішення в значній мірі відповідає результатам досліджень. Крім розміщення файлів зовні. Але обмеження доступу до / захисту каталогу та дозвол скрипту для обробки запитів файлів є заповненим. Обмеження доступу обробляється, .htaccessа скрипт у цьому випадку - плагіном wp-downloadmanger.

Додаткові примітки

  • це абсолютно необхідно , щоб змінити download methodдоoutput file
  • і, звичайно, обов'язково, щоб .htaccessфайл був на місці

  • перевірити факт того, що плагін бере на себе роль сценарію, подивіться wp-downloadmanger.php- про рядки 207 до 227 (версія 1.6.1); це розуміється як доповнення до пов'язаної інформації

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.