Php web前端中图像的访问控制

Php web前端中图像的访问控制,php,symfony,authorization,fosuserbundle,web-frontend,Php,Symfony,Authorization,Fosuserbundle,Web Frontend,我的Symfony 3 web应用程序有一个由FOSUserBundle管理的用户登录控件。 我很好地检查了服务器端的登录状态,控制了用户可能执行或不执行的所有必要操作 现在用户可以上传图像了。 有一个视图向用户显示其所有图像。为了向前端提供此用户galery视图所需的img路径,我将此用户图像的所有路径传递到前端,然后在那里显示 这是我感到困惑的原因: 我如何将访问此img路径的权限仅限于相应(已登录)用户,而拒绝所有其他用户? 或者:如何向前端web视图提供图像,而不使用每个人都可以访问的i

我的Symfony 3 web应用程序有一个由FOSUserBundle管理的用户登录控件。 我很好地检查了服务器端的登录状态,控制了用户可能执行或不执行的所有必要操作

现在用户可以上传图像了。 有一个视图向用户显示其所有图像。为了向前端提供此用户galery视图所需的img路径,我将此用户图像的所有路径传递到前端,然后在那里显示

这是我感到困惑的原因: 我如何将访问此img路径的权限仅限于相应(已登录)用户,而拒绝所有其他用户? 或者:如何向前端web视图提供图像,而不使用每个人都可以访问的img路径? 有没有办法通过使用Symfony/FOSUserBundle功能来做到这一点?

为此,您需要ACL(访问控制列表)。一种解决方案是使用带有imageID和Allowed userID的表,这样您就可以检查给定的映像并从该表/实体访问允许的用户,并为该用户提供映像路径。进一步确保使用与图像图像用户用户实体的正确关系

我如何将访问此img路径的权限仅限于相应(已登录)用户,而拒绝所有其他用户

如何向前端web视图提供图像,而不使用每个人都可以访问的img路径

对于以上两种情况,在控制器中,检查登录用户在image\u user中允许的图像,获取该特定用户的图像路径,并将其传递给视图/twing(您可以使用数组)

这对我来说很有用:

一切保持原样,但调用php脚本检索图像,而不是直接加载图像。 因此,我只更改了img标记中的“src”属性,以调用脚本并将img名称作为GET参数传递,一般情况下如下所示:

<img src="[server]/image.php?img=xy.jpg">

从相应的控制器操作方法返回此响应现在可以正常工作。

为什么我在没有评论的情况下对这个问题投了反对票?没那么明显…谢谢你。不过,我在一般访问控制方面没有问题。我的问题实际上是一个前端问题。有关详细信息,请参阅我的答案。对不起,如果问题不是那么清楚的话。
<img src="[server]/my/img/loading/route/xy.jpg">
$response = new Response();
$response->setContent( file_get_contents($imgPath) );
$response->setStatusCode( Response::HTTP_OK );
$response->headers->set( 'Content-type', $mimeType );
$response->headers->set( 'Content-length', filesize($imgPath) );