由于之前年少无知,在代码正式运行的环境中,犯过很多的严重错误。所庆幸的是,这些严重的错误并没有给之前服务的公司带来严重的后果,但是依然细思极恐。
接下来,下面列举一下,一些比较容易忽视的错误。
/.git 和 /.svn 文件夹访问权限
在之前一个外包公司工作的时候,因为接触到的项目很多,所以代码管理选择了用 git.开源中国 的私库对代码进行管理。
用 git 进行代码部署真的很方便:
一来,历史修改全部都有记录。
二来,在代码运行环境上执行 git pull origin master 一条命令,就能更新最新代码到运行环境,并且是一次性切换,没有中间过渡。
在 git 带来便利的同时,其实也带来了隐患:
git 把所有相关信息存储到 /.git 目录下的文件当中。那么如果说,服务器没有处理对这个目录的访问权限的话,很可能黑帽会对整一份代码进行复制,可能会造成以下下严重后果:
1.数据库账号密码泄露,导致数据库泄露
2.关键秘钥文件提交记录泄露(例如支付秘钥)
3.代码bug嗅探,导致系统入侵。
4.可执行文件等(.sh,.exe)
那么我们其实可以简单的通过设置服务器程序,apache 或者 nginx 对 .git 文件夹的 访问权限来解决这个问题。
这里以 apache 为例,修改httpd.conf
添加后,重启 apache httpd 服务 service httpd restart
得到效果:
.svn也是同样的道理。
触类旁通:
在下面也举一些常用需要禁止用户访问的文件类型:
1. sql 文件,因为有些系统喜欢把 sql 备份文件存储在运行的文件夹下。
2. log 日志文件,黑帽可以通过相关的log去分析系统能够接受的攻击类型。
3. 支付相关的秘钥文件,这个不用多说了。
总结
跟系统安全,私密性相关的文件或者文件夹访问权限,都需要多多注意一下,禁止访问权限,免得铸成大错。