如何通过 cURL 安全发送 Post 数据?

Jul*_*ian 0 php security post curl

我正在使用客户端 URL 发送 POST 数据。链接到源:http : //hayageek.com/php-curl-post-get/#curl-post。代码如下:

<?php
function httpPost($url,$params){
  $postData = '';
   //create name value pairs seperated by &
   foreach($params as $k => $v){
      $postData .= $k . '='.$v.'&';
   }
rtrim($postData, '&');
$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, count($postData));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);   

$output=curl_exec($ch);

curl_close($ch);
return $output;

}

$params = array(
   "name" => "Ravishanker Kusuma",
   "age" => "32",
   "location" => "India"
);

echo httpPost("http://www.jmediatechnology.eu/script.php",$params);
?>
Run Code Online (Sandbox Code Playgroud)

我想知道这种方法是否可以避免劫持或任何其他安全问题。

dec*_*eze 5

您正在发送一个普通的 HTTP 请求。如果有人在网络上的适当位置拦截请求,他就可以清楚地看到这一切。您必须:

  1. 使用 HTTPS。
  2. 滚动您自己的加密方案作为协议的一部分,并以与远程服务器协调的某种方式加密数据,远程服务器将对其进行解密。

我希望很明显您确实想要选项 1。话虽如此,使用 HTTPS 并不能绝对保证您是“安全的”(对于您要应用的“安全”的任何定义)。如果使用得当,HTTPS 可以有效地保护传输中的数据免受第 3 方的窥探。但这并不意味着您系统的其余部分都是安全的,并且您在其他地方没有任何明显的安全漏洞。