如何通过cURL保证发送Post数据?

时间:2014-03-18 10:56:33

标签: 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);
?>

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

1 个答案:

答案 0 :(得分:3)

您正在发送纯HTTP请求。如果有人在网络上处于适当的位置来拦截请求,那么他就能清楚地看到它。你必须要么:

  1. 使用HTTPS。
  2. 将您自己的加密方案作为协议的一部分进行滚动,并以某种与远程服务器协调的方式加密数据,远程服务器将对其进行解密。
  3. 我希望很明显你真的想要选项1.话虽如此,使用HTTPS并不是你“安全”的绝对保证(对于你想要应用的“安全”的定义)。如果使用正确,HTTPS可以有效保护传输中的数据免受窥探第三方的影响。但这并不意味着您系统的其余部分都是安全的,并且您在其他地方没有任何明显的安全漏洞。