Автоматически ограничить доступ к загрузчику / администратору на Wordpress - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь ограничить доступ к файлам, загружаемым через PHP / формы. Доступ должен быть предоставлен только загрузчику + администратору. Я не могу помешать людям использовать прямые ссылки для доступа к файлам в библиотеке мультимедиа. Процесс должен быть автоматизирован, с этой защитой по умолчанию.

Я ищу что-то безопасное / надежное. У меня есть реляционная база данных, чтобы проверить, кто загрузил изображение.

Я пытался использовать .htaccess для перенаправления на страницы PHP, и ни одно из этих решений не сработало. Сделайте изображения приватными в Wordpress

RewriteRule ^(.*\.(jpg|gif|png))$ isAuthenticated.php?path=$1 это, в частности, было бы здорово, если бы я мог заставить его работать. У меня нет опыта отладки или написания кода .htaccess, и я не нашел много ресурсов в Интернете.

1 Ответ

0 голосов
/ 17 октября 2019

Если вы хотите добавить пользовательскую роль пользователя или просто не хотите использовать плагин, вы можете попробовать этот метод вместо этого. Вы сможете изменить его в соответствии со своими потребностями.

Вам необходимо добавить следующий код в файл WordPress functions.php или плагин для сайта.

// Limit media library access

add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );

function wpb_show_current_user_attachments( $query ) {
    $user_id = get_current_user_id();
    if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
        $query['author'] = $user_id;
    }
    return $query;
} 

Этот код использует функцию current_user_can, чтобы проверить, имеет ли пользователь возможность активировать плагины или редактировать сообщения других пользователей. Если они этого не делают, то он изменяет запрос, используемый для отображения мультимедийных файлов, и ограничивает его идентификатором пользователя.

Также для защиты хотлинкинга изображений вы можете использовать его в своем .htaccess

#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L] 

Этот код позволяет отображать изображения только в том случае, если запрос исходит от yourdomain.com или Google.com. Не забудьте заменить yourdomain.com собственным доменным именем.

...