php - ssh 或 cURL 将数据发送到远程服务器

标签 php mysql curl ssh

我正在创建一个应用程序来将我的本地 mysql 数据库同步到远程 mysql 数据库,因此我正在生成一个转储文件,通过 sFTP 发送它,然后在服务器上执行它。

但是,我知道还有其他可用的方法,例如 cURL。我喜欢将数据发送到远程服务器并在接受(TRUE)时在服务器上执行它,但我对这方面与使用 cURL 相关的安全问题知之甚少。任何人都可以就 cURL 解决方案提出建议,或者建议任何替代方法吗?

最佳答案

首先,您应该使用 file_get_contents()fread() 等从文件中读取数据,而不是生成转储文件。

将此结果存储在一个变量中,然后通过管道发送该原始数据(如果您愿意,可以通过 cURL),并让服务器端的代码生成转储文件。

使用 cURL,您可以指定用于身份验证的私有(private)证书文件 - 因此其安全性与通过 ssh 使用证书相同 - 这不是您需要担心的事情。

您可以使用以下 cURL 选项示例设置 pem 文件:

curl_setopt($ch, CURLOPT_SSLCERT, $pemfile);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM'); 
curl_setopt($ch, CURLOPT_SSLKEY, $keyfile); 

Internet 上有上述内容的教程。使用私钥身份验证,您的安全问题得到解决。只要确保您没有将 CURLOPT_SSL_VERIFYPEER 设置为 false(您现在不希望任何 MiTM(中间人)攻击,是吗)。

关于php - ssh 或 cURL 将数据发送到远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19358211/

相关文章:

php - 在 laravel 5 中运行包含除法的 mysql 查询

php - 奇怪的日期格式,我在数据库中存储的两位数年份之前添加了前导零

php - Bootstrap 下拉菜单从 MySQL 中选择

php - 用于报告层次结构数据的下拉列表

php - Paypal REST api 计费协议(protocol) 搜索交易

php - jQuery和AJAX上的错误报告

php - Codeigniter 加入返回最后一个 ID

使用子选择值的 MySQL case 语句

powershell - 使用 Powershell/curl 检查 http header 的问题

php - CURL PHP 发送图像