1

我有下一个security.yml文件:

access_control:

- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/forum/, role: ROLE_USER }
- { path: /usuarios/, role: ROLE_NO_ACCESS }

但是如果我尝试访问/public/img/usuarios/otherDirectory/放入导航栏中的文件,则图像会显示在浏览器中。

为什么不拒绝访问?

更新

我尝试将其添加到 Apache 站点配置(在我的本地主机中):

    <Directory /home/me/MyServer/itransformer-2.0/web/public/img/usuarios>
                    AllowOverride none
                    Options -Indexes
                    Order allow,deny
                    Deny from all
    </Directory>

但我仍然可以直接访问图像。也许我做错了什么......

4

1 回答 1

0

您的文件在public文件夹中,所以它是public,换句话说,这不是存储私人文件的正确位置。

根据这篇文章(或Stack Overflow 上的这篇文章),您可以从控制器提供文件。所以尝试在受保护的 URL 后面使用这个控制器。

要提供多个文件,您必须将文件的路径存储在数据库中。例如:

+----+------------+
| id |    path    |
+----+------------+
|  1 | image.jpg  |
|  2 | image2.jpg |
+----+------------+

文件的管理在Symfony2 cookbook中有解释。

于 2013-10-28T23:36:50.893 回答