从另一个域下载PHP内容(安全方式)?

时间:2010-10-01 22:07:16

标签: php security copy get

所以,如果之前有人问这个问题,我很抱歉。我不确定要搜索什么。

简介:

我现在维护的所有域都托管在我的服务器上,所以我还没有遇到过这个问题。

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

我会定期在功能中创建更改并将其上传到单个文件夹。当用户登录时,内容会自动下载到其文件夹中。

我想做什么:

现在,假设我的用户未在我的服务器上托管。我不能使用copy(),但有没有一种安全可靠的方法来回显每个php文件的内容(很明显,我可以回应)到用户服务器上的另一个文件中?

例如:

目前我可以从jasonleodurbin.com复制到geodun.com(同一服务器),但是我想将jasonleodurbin.com/test.php复制到somedomain.com/test.php。

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

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

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

我很感激帮助!

3 个答案:

答案 0 :(得分:0)

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

您可以使用FTP,但如何设置它以便他们只能访问特定目录,这样他们就无法触及任何其他目录。您需要一个脚本从FTP位置获取文件并将其存储在每个用户的相应目录中吗?

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

答案 1 :(得分:0)

有几个选择:

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

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

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

可能还有很多不同的方法可以做到这一点,但这只是一些让你入门的方法

答案 2 :(得分:0)

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

可以从纯PHP(稍微实验性)的客户端完成,其中包含herehere的库,PHP extensionwrapper的库本地svn客户端。

这为您提供了安全保障,因为每个用户都可以拥有自己的密码,如果您愿意,可以撤回密码。也可以通过运行ssh隧道进行加密(将我的库选择限制为我认为的包装器),但实际上,不会过分担心加密,谁会关注服务器之间的流量?除非你做的是绝密型的东西。

它还为您提供自动更改检测,您无需按照自己的方式跟踪哪些文件已更新,因为在您提交新更改时已完成此操作。

这是一种经过验证的最新代码库方式,因此我不明白为什么要实现自己的代码库。如果代码更新出现问题,它还为您提供了回滚更改的额外优势。