checking base64 format fix
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user