Початкова ситуація
Для сайту, який я створюю, я розглядав ціле поле забезпечення завантажень / завантажень та обмеження доступу до них на основі ролей / можливостей користувача. Звичайно, я прочитав деякі попередні питання, пов’язані із (загальною) темою, для ознайомлення з найважливішими / найцікавішими з них:
- Як захистити завантаження, якщо користувач не ввійшов у систему?
- Як обмежити доступ до завантажених файлів?
- Обмеження доступу до файлів у певній папці
- Як зробити завантаження медіа приватним?
- Об'єднання сценарію завантаження PHP в `function.php`
Додаткові примітки
Як правило, це не дуже гарна ідея додатково покращити безпеку установки WordPress - наприклад, захистити свою wp-config.php
- є багато можливостей, які ви можете і повинні зробити. Існує багато інформації, як це зробити. Я в контексті цього питання здебільшого погоджуюся щодо своїх завантажень / завантажень.
Завантаження Wordpress не захищено, кожен може переглядати uploads
папку, якщо не запобігти її .htaccess
:
Options All -Indexes
.htaccess
Файл повинен бути поміщений в uploads
папку. Але це насправді не забезпечує їх безпеку, а просто ускладнює пошук файлів. Крім того, ви можете попередити hotlinking
, істотно обмежуючи доступ, referrer
- хоча це трохи різний випадок, я вважав, що я це згадую, я не деталізую його, ви можете знайти багато інформації про це.
Звичайно, є можливість зробити публікації приватними або створити користувацький тип публікації з відповідними файлами шаблонів, щоб цей тип публікації був приватним, але це не захистить ваші файли. Те саме можна сказати і для обгортання файлів у таких умовах, як is_user_logged_in()
або is_admin()
.
На стороні є багато плагінів, які обіцяють зробити ваші файли надійними та захищеними, але багато хто з них просто роблять вигляд, що це роблять, деякі причини вище. Я просто висловлюю це, бо я майже впевнений, що це невідомо всімбобі, тому знайте про це.
Об'єктивна
Мій намір полягав у тому, щоб мати можливість обмежити доступ до (деяких) завантажень та відповідно завантажень. І щоб переконатися, що ніхто з небажаних не міг отримати доступ до них, не випадково або якби хтось знав ім'я файлу, файли повинні бути справді приватними та безпечними. Адже лише певні люди повинні мати доступ без винятків.
Крім того, мені не потрібно було приватизувати весь сайт, адже це було б контрпродуктивно - воно використовується для публічної презентації. Крім того, я хотів, щоб рішення було легко застосовано з тієї простої причини, що деякі люди, що працюють з ним, не є саме комп'ютерними експертами, як це часто буває.
Питання
Звідси виникає питання, чи існує (відносно) простий спосіб обмежити доступ до (деяких) завантажень та відповідних завантажень? І як я це здійснив, це означає спосіб справді їх захистити і захистити?