ASP.Net Core静态文件安全(特别是图像)

2024-03-23

我有一个似乎很常见的问题,但我无法找到任何帮助。假设我有一个经过身份验证的用户将私人照片上传到我的服务器上的不可浏览文件夹。每个用户在大型文件存储中都有自己的文件夹,例如......

/FileStore/{UserId}/照片/my_cute_cat.jpg

文件已上传,我保存照片的缩略图,例如......

/FileStore/{UserId}/照片/Thumbs/my_cute_cat_thumb.jpg

该用户想要下载他们的照片。没问题...

  • 用户发送下载请求
  • 我授权用户并确保他们拥有该特定照片
  • 我提供文件

我需要在用户仪表板上的普通旧 img 标签中显示缩略图。 /Thumbs/ 文件夹未设置为提供静态图像。我不希望 /thumbs/ 文件夹能够提供静态图像,因为它们应该只对授权用户可见。我应该做些什么?


如果它只是一个小缩略图,请考虑使用嵌入式 base64 图像,并在此处提供更多详细信息:如何在 HTML 中显示 Base64 图像? https://stackoverflow.com/questions/8499633/how-to-display-base64-images-in-html

您可以通过将文件编码为 Base 64 格式(如此处解释的字符串)来将 Base64 向下传递到视图:http://www.devcurry.com/2009/01/convert-string-to-base64-and-base64-to.html http://www.devcurry.com/2009/01/convert-string-to-base64-and-base64-to.html

使用这种方法甚至使用 FileActionResult 通过控制器提供文件有一个很大的缺点,即无法使用 CDN 来传送缓存的内容。您可以做的就是仍然静态地提供图像,但给它们提供令人难以理解的长随机名称。当有人向您请求图像时,您只需向他们提供不可猜测的网址即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net Core静态文件安全(特别是图像) 的相关文章

  • 本地化 ASP.NET 资源的滑动过期

    假设我们有 2 个站点 myDomain AU 和 myDomain RU 具有相同的代码和本地化资源文件 resx 和 ru resx 我们预计大多数英语用户将使用 AU 网站 大多数俄语用户将使用 RU 网站 但是 如果 AU 域的某些
  • 中继命令和无参数执行方法

    我目前正在学习 WPF 和 MVVM 我想我已经了解了大部分内容及其工作原理 但我在使用 RelayCommand 或 DelegateCommand 时遇到了一些我不明白的问题 我认为这与代表的工作方式有关 请注意 下面的代码目前仅处于测
  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul
  • 何时使用 IComparable 与何时使用IComparer

    我正在尝试找出我需要实现哪些接口 他们本质上都做同样的事情 我什么时候会使用其中一种而不是另一种 好吧 他们不是quite与IComparer
  • 如何将 ConcurrentDictionary 转换为字典?

    我有一个 ConcurrentDictionary 对象 我想将其设置为 Dictionary 对象 不允许在它们之间进行转换 那么我该怎么做呢 The ConcurrentDictionary
  • 依赖注入的惰性解析

    我有 net 课程 我使用 Unity 作为 IOC 来解决我们的依赖关系 它尝试在开始时加载所有依赖项 Unity中有没有一种方法 设置 允许在运行时加载依赖项 还有更好的解决方案 Unity 2 0 中对 Lazy 和 IEnumera
  • .NET 组件和 COM 组件有什么区别

    NET 组件和 COM 组件之间有什么区别 有时我们使用 NET 组件包含在我们的项目中 有时我们包含 COM 引用 背后的想法是什么 NET 组件是托管代码 内存处理已为您完成 COM http en wikipedia org wiki
  • IIS Express 停止 Web 应用程序后立即关闭正在运行的站点

    我在使用 Visual Studio 2012 的第一天 当我想停止 IDE 中的应用程序时 应用程序仍在 IIS Express 上运行 我可以浏览和使用正在运行的应用程序 但现在不能了 如果我按下停止按钮 IIS 会立即关闭应用程序 因
  • Windows 事件日志权限

    我需要授予用户哪些权限才能写入 Windows 事件日志 我有一个 ASP NET 应用程序需要模拟用户 并且模拟的用户必须能够写入事件日志 要创建事件日志源 您需要成为管理员 否则您应该能够在没有提升权限的情况下写入它 也许看一下本文 h
  • C# 代码上的 ImageURL 不显示图像

    我在 aspx 页面上有图像
  • 查询 dns 别名

    我找到了一些code http msdn microsoft com en us library system net dns gethostbyaddress VS 71 aspx来自 msdn 站点 下面包含代码 看起来它将返回给定服务
  • C# 证书生成框架

    有谁知道可以生成公钥 私钥 X 509 证书并签署这些证书的 C 框架 BouncyCastleCrypto 虽然这个名字很疯狂 但我很确定它具有所有这些功能 几乎所有 RFC 标准均已实施 当我几年前使用它时 它的文档记录很少 但是单元测
  • 在 ASP.NET 中使用 AjaxControlToolkit 的异步 AJAXFileUpload 控件返回数据

    我正在使用上面的控件 注意它是 ASP NET 控件 我似乎看到很多人使用用 javascript 编写的类似名称的控件 来允许使用进度条 拖放操作来上传多个文件 该部分一切正常 但我需要随文件返回两条数据 具体来说 用户从两个文本框中输入
  • 从嵌入 C# 的浏览器控件获取 HTML 源代码

    我有一个嵌入在 C Windows 应用程序中的浏览器控件 我想获取渲染的 HTML 可能已被 javascript 修改 而不是原始 HTML 有什么建议么 您可以获取 HTML 并确实设置它 使用WebBrowser DocumentT
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • C# 中单个 & 符号的第二个含义是什么?

    我在 C 中使用了单个与号 来表示 检查second条件语句即使第一个是false 但以下似乎是不同的意思 of 总而言之 谁能解释一下如何i 1在下面的例子中有效吗 List
  • 部署项目 dll 导致“两者都存在类型 x”错误

    我有一个 Web 应用程序项目 一个业务逻辑项目和一个用于 Web 应用程序的 Web 部署项目 当我构建解决方案时 部署 Release bin 包含每个项目的 1 个 dll 因此我为 MyWeb dll MyWebBusiness d
  • ViewModel 的列表在操作中为 null

    我正在开发我的第一个 ASP NET MVC 3 应用程序 我有一个如下所示的视图 model IceCream ViewModels Note NotesViewModel using Html BeginForm Html Valida
  • 无法解析远程名称 - webclient

    我面临这个错误 The remote name could not be resolved russgates85 001 site1 smarterasp net 当我请求使用 Web 客户端读取 html 内容时 出现错误 下面是我的代
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I

随机推荐