保护Rails应用的svn目录
March 29, 2008
Rails开发者喜欢用Capistrano来自动化部署网站应用(什么,你不用?),即使不使用自动化部署,很多人也会使用svn co直接将代码取到网站应用目录。这给网站信息泄漏提供了方便。使用下面的地址,就能访问到这样的网站的svn信息:
- http://somesite.com/.svn/entries
- http://somesite.com/.svn/javascripts/entries
这可不大妙,因为这个文件里包含了你的svn库的地址、用户名和当前目录内容等很多信息。最好通过服务器配置来禁止对.svn目录的访问。在nginx下,可以在server配置下加入这一条:
location ~ /\.svn {
deny all;
}
另一种方式是在config/deploy.rb中加入以下设置,使用svn export来导出代码:
set :deploy_via, :export
不过很多时候为了手工维护站点的需要,我更倾向于用svn co(svn checkout)。



您好!我是偶尔在网上看到这篇文章关于部署的安全性文章,觉得很有用。
想征求你的同意将它收入到一下的Rails中文wiki中去。
http://wiki.rubyonrailscn.org/rails/show/ProtectRailsAppsSvnFolder
很抱歉,我在未经您的情况下已经将文章贴如wiki,并著名出处。因为那个wiki是自由编辑的。如果您觉得不妥的话,请跟我联系,我立刻删除那个wiki页,谢谢。
@rubyonrailscn.org: It’s a pleasure^_^