我试图在生产中发布我的第一个Symfony项目,但我非常担心安全问题,我采取了以下措施:
1)首先:删除 / var 这些目录:缓存,日志和会话
2)第二:更改了cookie会话的默认名称(客户端:symfony)
3)Trhee:在应用程序的根目录中创建 .htaccess
我的问题是关于.htaccess。目标是拒绝访问其他应用程序目录,例如: / app,/ src,/ test,/ var,/ vendor 。
我会在.htaccess中编写以下规则并将其放在我的应用的根目录中: myDevelopedApp / .htaccess 。
.htaccess
#Checking if module is avalaible
<IfModule mod_rewrite.c>
#Using the rewrite engine
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#Rewrite rule to redirect the request
RewriteRule ^(.*)$ web/$1 [QSA,L]
<IfModule>
问题是它无法正常工作,我在编写规则时无法访问Web文件夹。当我尝试通过浏览器访问它时,Apache隐藏应用程序myDevelopedApp
我错了什么? 非常感谢欢迎任何其他提高生产环境安全性的建议。
答案 0 :(得分:2)
如果您真的担心安全问题,请遵循Symfony best practices。这意味着只能在vhost中访问/web
文件夹。
此外,如果您使用标准版初始化项目,则.htaccess
app/
个文件夹中已有src/
个文件。
答案 1 :(得分:0)
htaccess文件代码
.htaccess #Checking if module is avalaible #Using the rewrite engine RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f #Rewrite rule to redirect the request RewriteRule ^(.*)$ web/$1 [QSA,L]
以及.htaccess文件中的此代码
{{1}}
RewriteBase解决了这个问题