From 8918ea51241f813601685428fc1f1c041a1e7ae1 Mon Sep 17 00:00:00 2001 From: gdarko Date: Sat, 10 Feb 2024 01:31:44 +0100 Subject: [PATCH] Fix image extension validation Issue #21 --- app/Rules/Base64Mime.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Rules/Base64Mime.php b/app/Rules/Base64Mime.php index 2e70fc15..35fd8384 100644 --- a/app/Rules/Base64Mime.php +++ b/app/Rules/Base64Mime.php @@ -32,11 +32,18 @@ class Base64Mime implements Rule $this->attribute = $attribute; try { - $data = json_decode($value)->data; + $decoded = json_decode(trim($value)); + $name = !empty($decoded->name) ? $decoded->name : ''; + $data = !empty($decoded->data) ? $decoded->data : ''; } catch (\Exception $e) { return false; } + $extension = pathinfo($name, PATHINFO_EXTENSION); + if(!in_array($extension, $this->extensions)) { + return false; + } + $pattern = '/^data:\w+\/[\w\+]+;base64,[\w\+\=\/]+$/'; if (! preg_match($pattern, $data)) {