- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个完全受防火墙保护的 SF2 网络应用程序:在登录之前,任何人都不能看到或修改任何内容(当然,登录表单除外)。
所以这里是 firewall
我的一部分 security.yml
文件:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main_login:
pattern: ^/login$
anonymous: true
main:
pattern: ^/
anonymous: false
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
logout:
path: fos_user_security_logout
target: /
这很好用:如果我输入 url http://mywebsite.com/app.php/article/show/1
未登录时,我将转到登录页面。
我的问题是我有一些文档和媒体文件位于 Symfony 的 web
中目录(例如 myapp/web/document/myTextFile.txt
)。登录用户可以通过我的应用访问它们,非登录用户也可以访问它们!
任何输入 http://mywebsite.com/app.php/document/myTextFile.txt
的人可以下载文件...
为什么 pattern: ^/
没有线防止这个?是 web
默认情况下排除的文件夹,因为它包含 app.php
和 js/
和 css/
文件夹?
如何保护我的文档?
更新:显示 protected 图像
我尝试了 Gerry 建议的解决方案,它可以很好地保护我的文档下载。
不过,我的document
里也有照片文件夹,我想显示这些图片,直接包含在相关页面中。
例如,在http://mywebsite.com/app.php/article/show/1
会有一些文字和图片myapp/app/Resources/document/AAA.jpg
,并在 http://mywebsite.com/app.php/article/show/2
会有一些文字和图片myapp/app/Resources/document/BBB.jpg
等
我尝试用 Assetic 来做,但它似乎是针对“静态”图像(如顶部 Logo 或不依赖于对象的图像)完成的。
我看到的一个解决方案是将图像转换为 Base64 并像这样包含它:<img alt="" src="data:image/png;base64(...)" />
,但它看起来真的很丑......
最佳答案
Web 目录是您的公共(public)根目录,由网络服务器 (Apache/Nginx/...) 提供服务。
默认情况下,对现有文件的任何请求根本不会通过 Symfony,因此没有防火墙设置会阻止对驻留在 Web 根目录中的文件的访问。
干净的解决方案是将这些文件移动到另一个目录,在 webroot 之外,例如 app/Resources/uploads
。然后你可以编写一个 Symfony Controller 来下载这些文件。
关于php - Symfony2 防火墙 : protect/web folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869533/
当我在 ./blah/中创建 index.js 时使用 webpack,然后执行 import blah from './blah' 它成功地从 index.js 获取 但是,我的代码编辑器现在充满了
我正在尝试使用 Webpack 4 将图像文件夹从 src 文件夹导入(移动)到 dist 文件夹,但与 Gulp 不同,这个任务在 Webpack 中看起来非常复杂,即使我什至没有尝试搞乱目前,我只
这个问题已经有答案了: Update : Move files from one folder to another based on file extension (3 个回答) 已关闭 4 年前。
我有一个文件夹路径存储在属性 nightly.basepath 中(这里的值是 /path/to/my/nightly ): /path/to/my/nightly |- build_201003
这是我的代码。非常简单,除了当它创建实际文件夹时文件夹名称而不是文件夹名称,即“Test-Folder”它创建“@{Folder=Test-folder}/” $Folders = Import-Cs
我想复制一个包含多个文件夹的文件夹,并且该文件夹包含多个文件。如果此文件夹存在,我想将它们保留在里面,并覆盖这些文件(如果存在)。如果文件不存在,则会自然添加它们。 _ = try FileManag
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我想弄清楚 IMAP 的 search (带参数: "unseen all" )命令是通过搜索邮箱中的所有文件夹还是仅搜索当前选定的文件夹来工作? IE。选择时INBOX并发出 search命令,它没
我正在尝试将我的网站重定向到 www.domain.tld/folder/ 来自 www.domain.tld/folder/index.php?params=blah¶m2=etc 我已经尝
我正在尝试让我的网站重定向到 www.domain.tld/folder/ 来自 www.domain.tld/folder/index.php?params=blah¶m2=etc 我试过:
在 Eclipse IDE 中创建新的 Java(不是 JavaEE)项目时,我看到一个选项,上面写着Allow output folders for source folders。 那是干什么用的?
我已经关注 Jenkins extending pipeline with shared libraries 有人提到 The src directory should look like stand
我在 Visual Basic 2010 中遇到一个问题:如何将所有子文件夹(仅子文件夹,而不是主文件夹)复制到另一个文件夹中? 谢谢您的帮助! 最佳答案 您需要递归遍历所有文件和文件夹并复制它们。这
我正在尝试使用 groovy 脚本从 jenkins 收集数据并收到错误: unable to resolve class com.cloudbees.hudson.plugins.folder.Fo
我使用Intellij IDEA开发一个web项目,项目中有一些源码文件夹。 我想将不同源文件夹中的代码编译到不同的编译文件夹。 我知道在myeclipse中有一个功能“allow output fo
我有 com.company.database.mysql 和 com.company.database.sqlite。我只想包含 com.company.database.mysql。 我的代码组织
我正在 Tomcat 服务器上使用 eclipse 开发一个小 servlet。 我想从这个 servlet 中包含一些 jsp 文件,它非常适合该文件 WEB-INF/website/NewFile
假设我有一个目录,里面有一堆网站名称。 即 dev.domain.com dev.domain2.com dev.domain3.com 如何将它们重命名为 .com在使用管道和/或重定向 bash
我刚刚在 redis install_server 中遇到了一个错误 script它有一个硬编码: DEFAULT_CONFIG="../redis.conf" 所以当这个脚本不是从它自己的文件夹运行
我有一个非常简单的 WAR 项目,我想在所有已编译 Java 类所在的类输出文件夹的顶部包含一个名为 META-INF 的目录。我正在使用 Maven,但似乎默认情况下 Maven 不会包含任何不是
我是一名优秀的程序员,十分优秀!