在我们的Web应用程序中,用户可以选择上传文件。我们正在验证客户端的文件扩展名和服务器端的文件内容。现在,我们想在IIS级别添加一些过滤器,以禁止使用特定的文件扩展名类型。是否可以在IIS级别上配置一些过滤器以拒绝以“ * .PDF”为扩展名的上传请求?在IIS请求过滤模块中,我添加了拒绝文件扩展名的规则,但是没有运气。当我用谷歌搜索这个问题时,大多数时候我以代码的形式找到了解决方案,但不是在IIS级别。请告知。
客户端代码
<asp:RegularExpressionValidator
ID="regValidateFileExtension" runat="server" ControlToValidate="upfile"
ErrorMessage="Selected file type not allowed in the system."
ValidationExpression="^([0-9a-zA-Z_\-~ :\\])+(.XLS|.XLSX|.CSV)$"></asp:RegularExpressionValidator>
服务器端代码:
if (fi.Extension.ToUpper() == ".XLS" || fi.Extension.ToUpper() == ".XLSX" || fi.Extension.ToUpper() == ".CSV")
{
//call third party dll to check for virus.
}
我们的供应商进行安全扫描时,他们已经对上传功能提出了担忧。根据与他们的初步交谈,他们可以拦截请求并将无效的文件扩展名发送到应用程序,因此我们正在考虑是否可以在IIS级别上创建一些过滤器来停止特定的扩展名或mime类型。