Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动限制对Wordpress上的uploader/admin的访问_Php_Wordpress_Permissions_Media - Fatal编程技术网

Php 自动限制对Wordpress上的uploader/admin的访问

Php 自动限制对Wordpress上的uploader/admin的访问,php,wordpress,permissions,media,Php,Wordpress,Permissions,Media,我试图限制对通过PHP/forms上传的文件的访问。只能向uploader+管理员授予访问权限。我似乎无法阻止人们使用直接链接访问媒体库中的文件。该过程需要自动化,并将此安全性作为默认设置 我在找安全/万无一失的东西。我有一个关系数据库来检查谁上传了图片 我曾尝试使用.htaccess重定向到PHP页面,但这些解决方案都不起作用 RewriteRule^(.*\(jpg | gif | png))$isAuthenticated.php?path=$1如果我能让它正常工作,那就太好了。我没有调试

我试图限制对通过PHP/forms上传的文件的访问。只能向uploader+管理员授予访问权限。我似乎无法阻止人们使用直接链接访问媒体库中的文件。该过程需要自动化,并将此安全性作为默认设置

我在找安全/万无一失的东西。我有一个关系数据库来检查谁上传了图片

我曾尝试使用.htaccess重定向到PHP页面,但这些解决方案都不起作用


RewriteRule^(.*\(jpg | gif | png))$isAuthenticated.php?path=$1
如果我能让它正常工作,那就太好了。我没有调试或编写.htaccess代码的经验,也没有在网上找到太多资源。

如果您想添加自定义用户角色或只是不想使用插件,那么您可以尝试此方法。您将能够修改它以满足您的需要

您需要将以下代码添加到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函数检查用户是否有能力激活插件或编辑其他用户的帖子。如果没有,则会更改用于显示媒体文件的查询,并将其限制为用户ID

对于图像热链接保护,您也可以在.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。

您必须用代码手动编辑functions.php文件。我是否必须在每次Wordpress更新时编辑functions.php文件?如果我能让.htaccess起作用,它会更有意义吗?试试这个插件->我的答案被更新为包含来自的热链接保护。htacess@user2954658我认为您无法从.htaccess管理用户角色访问