File upload 在旧ASP站点中上载特定于块的文件

File upload 在旧ASP站点中上载特定于块的文件,file-upload,asp-classic,iis-7,http-post,iis-8,File Upload,Asp Classic,Iis 7,Http Post,Iis 8,我正在处理大量涉及上传文件的易受攻击的经典asp网站 我们需要防止特定的上传被上传“.exe、.asp、.aspx等” 然而,我们希望不必修复这些庞大的代码库(许多站点) 因此,我试图想出一个好办法,阻止特定类型的文件上传到整个盒子 我想出了一些 文件系统监视程序 阻止X文件夹上的Get请求,仅允许上传(写访问)到X文件夹“并非所有站点都通用” 想出一种截获asp请求、分析它们、阻止它们或将它们传递给ISAPI asp处理程序的方法 文件系统监视程序是一个好主意,但我听说它可能不可靠,而且它将在

我正在处理大量涉及上传文件的易受攻击的经典asp网站

我们需要防止特定的上传被上传“.exe、.asp、.aspx等”

然而,我们希望不必修复这些庞大的代码库(许多站点)

因此,我试图想出一个好办法,阻止特定类型的文件上传到整个盒子

我想出了一些

  • 文件系统监视程序
  • 阻止X文件夹上的Get请求,仅允许上传(写访问)到X文件夹“并非所有站点都通用”
  • 想出一种截获asp请求、分析它们、阻止它们或将它们传递给ISAPI asp处理程序的方法
  • 文件系统监视程序是一个好主意,但我听说它可能不可靠,而且它将在一台机器上的数百个文件夹上运行。它需要足够快的速度来删除一个错误的上传,然后上传程序才能对其执行get请求

    2可能是最好的解决方案,但许多站点都有通配符上载位置“在站点根目录中的任何位置上载”,因此不适用于这些位置。如果我关闭根目录上的get请求,站点将中断

    3听起来似乎有道理,但我不确定这是否可能

    如果我可以在c#with.Net中创建自己的HttpHandler,并将其注册到*.asp,然后将其放在经典asp处理程序之前的web配置中,那么它将触发asp请求

    在这一点上,我可以检查post类型是否为post,是否有文件,以及是否允许该文件

    如果它签出,那么我需要将该请求传递给原始处理程序

    有谁有更好的想法或者知道3是否可行吗


    更新:我们的防火墙无法阻止asp或aspx上传,我也找不到在Windows防火墙中进行上传的方法。

    您是使用类还是第三方组件进行上传?@John上传是通过asp页面、表单元素和文件上传类型的输入完成的。全页回帖,老派,传统上传。执行此操作的代码无处不在,有数百个不同版本、数百个不同版本和实例。否则,我只需要找到代码,添加代码来阻止上传,然后就可以完成了。随着时间的推移,我们将逐步淘汰代码,但我们需要一个立即快速(黑客)的解决方案,让我们尽快将上传恢复。现在我已经写了所有的东西,我知道2号工作得很好,但是我只在一些网站上上传了,仍然有20%个左右的解决方案不能工作。好的,所以我用Visual Studio 2015在C++中写一个ISAP过滤器来做这个,如果它工作的话,会发布一些信息。我试着用一个HttpModule来做这件事,但是如果你用.Net请求对象来处理一个ASP请求,它会把它弄糟,当它最终得到请求时,这打破了传统的ASP。不使用isapi过滤器,IIS7/8不支持SF_NOTIFY_READ_RAW_DATA通知,所以我看不到请求体来分析文件名。我已经转向了原生iis7 API和原生HttpModule,这会让我有一个全新的体验。