$ _POST param被修改/截断

时间:2014-01-27 14:57:00

标签: php apache post encryption

当我将POST中的数据发送到php脚本时,此帖子数据被截断/修改......

我有一个使用Guzzle或Curl发送的变量$ encrypted到一个端点,它返回json中的post数据(例如)

echo json_encode($_POST);
发送前

$加密:

string(88) "D4PYDZou2pEugJKyR0vpjpdKplQ0g/pxNOrqomImFgdtKjuKA3WAQuFAt3OUlghBnGpMz2dOnYGOkGUyz5Vd7g=="
从端点

收到的

$ encrypted

string(71) "D PYDZou2pEugJKyR0vpjpdKplQ0g/pxNOrqomImFgdtKjuKA3WAQuFAt3OUlghBnGpMz2d"

当我用file_get_contents(“php:// input”)检查RAW数据时;

$ encrypted是可以的但不在$ _POST ...

我的脚本是通过nginx运行的apache / php

THX。

雷米

1 个答案:

答案 0 :(得分:0)

我找到了发布base64数据的解决方案。

function base64_urlencode($data)
{
    return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

function base64_urldecode($data)
{
    return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}

这种方法避免使用字符串中的特殊字符。