What are the best practices for securely passing XML data between PHP scripts using POST method?

When passing XML data between PHP scripts using the POST method, it is important to properly sanitize and validate the input to prevent any malicious code injection. One way to securely pass XML data is to use PHP's htmlspecialchars function to encode the XML data before sending it, and then decode it on the receiving end using htmlspecialchars_decode.

// Sending script
$xmlData = "<data>Some XML data</data>";
$encodedXmlData = htmlspecialchars($xmlData);
$postData = http_build_query(array('xmlData' => $encodedXmlData));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/receiving_script.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// Receiving script
$decodedXmlData = htmlspecialchars_decode($_POST['xmlData']);
$xml = simplexml_load_string($decodedXmlData);
// Process the XML data as needed