Git diff向黑客发出警报
我们使用Git进行源代码控制,使用Beanstalkapp.com作为远程存储库。使用Beanstalk,我们可以通过sftp部署到我们的Rackspace云站点帐户(它们不支持SSH)。虽然这样做很好,但我们需要确保我们的网站不会在没有我们的知识(黑客)的情况下直接在服务器上更新。我知道我们可以对所有目录/文件进行散列,以查看是否有更改,但我正在寻找一种更可靠的方法来识别更改的内容。我提出了以下方法,我觉得经验丰富的人可以改进这些方法 以下内容将在本地计算机上的shell脚本中,并通过cron每小时运行一次:Git diff向黑客发出警报,git,backup,git-diff,Git,Backup,Git Diff,我们使用Git进行源代码控制,使用Beanstalkapp.com作为远程存储库。使用Beanstalk,我们可以通过sftp部署到我们的Rackspace云站点帐户(它们不支持SSH)。虽然这样做很好,但我们需要确保我们的网站不会在没有我们的知识(黑客)的情况下直接在服务器上更新。我知道我们可以对所有目录/文件进行散列,以查看是否有更改,但我正在寻找一种更可靠的方法来识别更改的内容。我提出了以下方法,我觉得经验丰富的人可以改进这些方法 以下内容将在本地计算机上的shell脚本中,并通过cron
- 创建新的Git分支“备份”
- 使用“git签出备份”切换到分支
- 使用SFTP下载所有文件
- 将文件添加到分支“git Add--all”
- 将文件提交到备份分支“git Commit-m‘备份过程’”
- 差异分支“git Diff master..backup”
- 如果发现差异,请通过电子邮件发送结果李>
- 切换回主分支
- 检查应该部署的分支
- 将当前部署的文件从服务器下载到本地计算机上的临时目录
- 运行
命令将签出的文件与下载的服务器文件进行比较diff
当然,生成散列更简单,但是如果有人可以访问我们的服务器文件,那么他们可以更改生成散列的程序。因为Git中有明确的签入/修改内容的历史记录(并且您不允许重定基址),我不知道你怎么会不注意到你的代码中有一些细微的变化,仅仅是在使用普通的Git服务器上。使用Git来实现这一点似乎有些过分了。你真正想要的只是一份杂烩。如果有什么不同于你的期望,那么你可以做一个更详细的调查。格雷格,这也是一个很好的观点。但是我担心太多的警报没有一个好的更改列表。如果您在网站上寻找您没有做的更改,那么任何警报都应该引起严重关注。我不会担心太多,因为只有一个就太多了。@greg hewgill,真的!我可以尝试散列检查,如果我收到一些更改的通知,我可以手动运行sftp/git diff。有什么理由这比分支机构更可取吗?只要保持回购协议干净就行了。