在 ASP.Net / C# 中验证 Base64 图像

And*_*ndy 2 c# asp.net-mvc base64 c#-4.0 asp.net-mvc-4

我正在构建一个 ASP.Net mvc4 应用程序,该应用程序允许用户通过 POST 请求发送编码为 Base64 字符串的图像。如何验证用户输入以确保base64字符串确实是图像并防止用户在POST请求中传递恶意数据?例如,防止外部 URL 被注入。

我发现this和this告诉我们在 PHP 中执行此操作,而不是在 Asp.net/C# 中执行此操作。

And*_*NET 5

我将在 PHP 示例中遵循相同的方法,基本上尝试从 Base64 编码数据创建图像。如果数据不是有效的图像,我希望图像会抛出异常或至少为空。

经过快速搜索,我在 SO 上找到了一个示例,它展示了从 Base64 编码字符串创建图像的几种方法。

假设 ms 是 MemoryStream 类型,我怀疑您可以使用 try/catch 包装这些方法之一:

new Bitmap(ms)
Run Code Online (Sandbox Code Playgroud)

或者

mage.FromStream(ms);
Run Code Online (Sandbox Code Playgroud)