使用PHP curl修剪发送的数据



我用curl发送一些键值字符串作为post数据。我发现任何分号都被删除了(根据目标的请求日志(。但就在我发送数据之前,它仍然包含分号。在下面的任何卷曲操作中是否有任何输入过滤?

function curlPostShellExec($data, $url)
{
$fields_string = '';
foreach($data as $key=>$value)
{ 
$fields_string .= $key.'='.$value.'&'; 
}
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}

%3A替换分号

或者,您可以使用urlencode()或unclexo建议的http_build_query()

urlencode将对您的字符串进行编码,以便通过CURL或GET进行安全传输。你可以用urldecode在另一边解码它们

例如。

urlencode(rtrim($fields_string, '&'));

或者你可以用替换你的整个前臂块

$fields_string = http_build_query($data);

相关内容

  • 没有找到相关文章

最新更新