Вы когда-нибудь проверяли URL-адрес изображения ?Выглядит это так:
image/gif;base64,R0lGODlhyAAiALM...DfD0QAADs=
Как видите, фактическое представление в двоичном формате двоичного содержимого изображения начинается после запятой.Все, что вам нужно сделать, это изменить:
$base = $input_data['image'];
на:
// php >= 5.4
$base = explode(',', $input_data['image'])[1];
// php < 5.4
list (, $base) = explode(',', $input_data['image']);
, поэтому функция base64_decode получает правильную строку base64.
Youтакже отсутствует правильная проверка в вашем скрипте:
- проверить правильность декодирования входных данных JSON
- проверить
image
ключ существует в результирующем массиве - проверить
base64_decode
действительно декодировал строку - проверка правильности полученного изображения (злоумышленники могут встроить PHP-код, например, в изображение)
Таким образом, вы можете быть на 99% уверены, что ваш сервер выигралне скомпрометированы в будущем.