Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git diff向黑客发出警报_Git_Backup_Git Diff - Fatal编程技术网

Git diff向黑客发出警报

Git diff向黑客发出警报,git,backup,git-diff,Git,Backup,Git Diff,我们使用Git进行源代码控制,使用Beanstalkapp.com作为远程存储库。使用Beanstalk,我们可以通过sftp部署到我们的Rackspace云站点帐户(它们不支持SSH)。虽然这样做很好,但我们需要确保我们的网站不会在没有我们的知识(黑客)的情况下直接在服务器上更新。我知道我们可以对所有目录/文件进行散列,以查看是否有更改,但我正在寻找一种更可靠的方法来识别更改的内容。我提出了以下方法,我觉得经验丰富的人可以改进这些方法 以下内容将在本地计算机上的shell脚本中,并通过cron

我们使用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。有什么理由这比分支机构更可取吗?只要保持回购协议干净就行了。