svn作为比较常用的一个版本控制器软件,在多人协同开发中普遍使用,但是有时候在版本发布功能的时候,如果开发人员不小心把./svn/目录也放到来发布出去的应用中,就有可能导致源码泄密。其危害远比SQL注入等其它常见网站漏洞更为致命,因为黑客获取到网站源代码后,一方面是掠夺了网站的技术知识资产,另一方面,黑客还可通过源代码分析其它安全漏洞,从而对网站服务器及用户数据造成持续威胁。因此开发人员切记,不能让svn及entries文件夹暴露于外网环境 。
__避免方案:__使用svn export命令导出项目,不要直接在应用目录使用svn co检出项目代码,svn co检出的代码包含entries文件夹,代码仍处于版本控制之中,与svn服务器还有关联。
处理方案: 如果实在没办法,只能使用svn更新代码到发布的应用中,可通过配置服务器取个折中的方案.
Nginx的配置:
location ~ ^(.*)\/\.svn\/ {
return 404;
}
这样恶意客户访问的时候,就返回错误页面了。