checking base64 format fix

This commit is contained in:
Michał Zieliski
2024-07-16 13:23:49 +02:00
parent 53aa672309
commit 945a227473

View File

@@ -137,7 +137,26 @@ public class DataInboxController : Controller
// helpers
private bool IsBase64String(string data)
{
var bytes = new Span<byte>(new byte[256]);
return Convert.TryFromBase64String(data, bytes, out _);
if (string.IsNullOrEmpty(data))
{
return false;
}
try
{
var base64Bytes = Convert.FromBase64String(data);
var utf8String = Encoding.UTF8.GetString(base64Bytes);
var reEncoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(utf8String));
return data.TrimEnd('=') == reEncoded.TrimEnd('=');
}
catch (FormatException)
{
return false;
}
catch (DecoderFallbackException)
{
return false;
}
}
}