我有这个问题很多年了,每次出现这个问题时都会进行研究,但始终找不到明确的答案。不知何故,强大的 Internet、MSDN、社区论坛对此要么保持沉默,要么含糊其辞。在数以千计的与发展有关的不确定性中,这是唯一一个仍然难以捉摸的。
直截了当:为了使用户能够在共享主机环境中上传和管理他们博客文章中使用的图像(和其他文件),我可以考虑 SQL Server 二进制数据类型(性能影响)或文件系统。要使用后者,需要为存储目录上的 IIS_IUSRS 角色设置必要的权限:创建/写入、读取和删除。我的问题 - 如果我这样做,安全隐患是什么?有人能以某种方式利用这一点,绕过 ASP.NET 请求管道并操纵文件夹内的文件,而不向相应的 ASP.NET 处理程序(检查权限、验证上传等)发出请求吗?
我开发了几个允许文件上传的系统,这一直困扰着我。现在,希望有人能够让我放心,并在理想情况下解释该过程背后的机制。
更新
查看最新答案后(非常感谢),问题的另一种表述:
客户端是否有可能以某种方式绕过请求管道并在允许它的目录中创建/删除文件(假设该人知道目录结构)?还是只有处理请求的代码才能做到?有什么潜在的利用吗?