2010-10-01 43 views
1

所以,如果之前有人问过这个问题,我很抱歉。我不确定要搜索什么。从其他域下载PHP内容(安全方式)?

简介:

所有我现在保持我的服务器上托管,所以我还没有碰到了这个问题尚未域。

我创建了一个类似于WordPress的结构,用于上传和编辑图像。

我经常在函数中创建更改并将其上传到单个文件夹。当用户登录时,内容会自动下载到他们的文件夹中。

我所想要做的:

现在,说我有没有我的服务器上承载的用户。我不能使用copy(),但是有没有一种安全可靠的方法来将每个php文件的内容(显然,我可以回显)都回显到用户服务器上的另一个文件中?

例如:

目前我可以从jasonleodurbin.com复制到geodun.com(同一台服务器),但说我要复制jasonleodurbin.com/test.php到somedomain.com/test。 PHP。

我有一些想法,例如给每个用户一个私钥并将其发送到像echo.php这样的文件。 echo.php将抓取每个文件(最近被修改)的内容并将其回显到屏幕上。请求服务器将获取该内容并将其复制到相应的.php文件中。

我认为我可以通过GET发送密钥,但由于我从来没有涉足任何事情的安全隐患(我是一个业余爱好者),我不知道这是多么安全。

有人可以给我发送任何建议或指示吗?

我很感激帮助!

回答

0

我假设这是敏感数据。如果是这样,那么我会建议使用PGP密钥来加密文件。无论哪种方式,您都需要一种方法将文件从服务器发送到服务器。我不记得我是怎么做到的,但我曾经从我们的远程服务器发送加密的数据文件到内部的服务器。我们使用PGP密钥加密和解密,一旦它到达内部。至于我们用于通过网络发送文件的方法,我相信我们使用了SCP(您需要在服务器上访问shell)。

你可以使用FTP,但是如何设置它以便它们只能访问特定的目录,以便它们不会碰到其他任何东西。您需要一个脚本来从FTP位置获取文件并将其存储在每个用户的相应目录中?

只是想到了一些东西,将文件存储在一个受保护的文件夹中。让用户使用curl下载文件。我相信你可以用curl指定用户名/密码。

+0

但是,他们必须知道我的用户名和密码到我的服务器。这对我来说似乎相当危险。 – Jason 2010-10-01 22:17:57

+0

@Jason这就是为什么你创建一个有限权限的FTP用户 – NullUserException 2010-10-01 22:20:13

+0

那么如果我想否认用户权限(即他们几个月没有付款)会发生什么?我无法访问他们的服务器就无法做到这一点。 – Jason 2010-10-01 22:37:08

0

有几个选项:

上传test.php的最新版本为test.phps的位置(PHP源文件,将显示,而不是运行)知道客户端。然后由他们来下载该文件并将其安装到他们的Web服务器上。 优点:您不需要太多的努力,不需要密钥或加密。 缺点:每个人都可以查看你的PHP文件的内容,如果他们知道在哪里看,不保证客户端实际上会得到文件的更新版本。

将文件复制到客户端Web服务器。使用scp,ftp或某些此类方法更新客户端Web服务器上的test.php。优点:文件将始终更新。如果您使用scp 缺点,则合理安全:您需要额外的步骤,您必须记住每次更改test.php时都要这样做。您需要访问客户端Web服务器才能正常工作

以定时间隔自动复制。设置一个cron脚本,在每小时/每天/每周/某个时间将test.php同步到客户端Web服务器 优点:任何一方都不需要太多的重复努力。如果您使用scp ,则合理安全:缺点:如果发生了某些变化,并且在发生错误时未通过电子邮件发送,则可能会中断。您仍然需要访问客户端计算机才能正常工作。

有可能是多了很多不同的方法来做到这一点为好,但是这仅仅是几个让你开始

+0

我喜欢这个想法,但我试图远离要求访问他们的服务器。在决定什么需要更新方面,我想我可以使用像很多API一样的东西。向文件发送请求,然后查看输出(即最新版本)。如果版本不匹配,请询问自上次更新以来修改了哪些内容(我已经这样做了)。然后请求这些文件的内容。这一切似乎很容易,但这是我担心的安全方面。我不太在乎复杂性。 – Jason 2010-10-01 22:33:10

0

使用版本控制系统,如颠覆。每次进行要推送的更改时,只需将代码签入到存储库,然后从客户端运行更新。如果您已经在使用版本控制系统,请创建一个生产分支,您可以在准备推送给客户时提交所做的更改。

它可以从库中纯PHP客户端(略实验)完成从herehere,具有PHP extension,或用wrapper原生svn客户端。

这为您提供了安全保障,因为每个用户都可以拥有自己的密码,如果您愿意,可以将其撤回。也可以通过运行ssh隧道来进行加密(将您的图书馆选择限制在我认为的包装上),但是真的,不会担心太多的加密问题,谁来查看服务器之间的流量?除非你在做绝密类型的东西。

它也为您提供了自动更改检测功能,您无需自行追踪更新哪些文件,因为这是在您执行新更改时完成的。

这是一个经过验证的代码库更新方式,所以我不明白为什么要实现自己的代码库。如果(当)代码更新出现问题时,它还为您提供额外的优势,能够回滚更改。