c# – 文件上传安全性关注
我有一个公开的Web表单,具有文件上传功能.现在文件被保存在Web服务器上,或作为附件发送到电子邮件中.我们正在限制大小,即15MB和文件上传的扩展名.我们的SMTP服务器在同一个Web服务器上.我担心安全性,因为任何人都可以上传恶意文件,并可能影响我们的生产Web服务器.
通过这种文件上传控件可以让公众有什么风险?有没有人可以通过上传恶意文件在网络服务器上执行恶意脚本. 我做了一些研究,发现了以下几点 >如果我以电子邮件的形式发送文件作为附件,该文件将临时存储在ASP .Net文件夹中,一旦发送电子邮件将被删除. 这些只是几点,但我想知道文件上传中的任何盲点. 解决方法
要回答有关可能的安全漏洞的问题,是的,即使不将文件保存到磁盘,您也可以在应用程序和用户中创建漏洞.但是,您可以采取几条防线来验证.
第一个是显然限制可以上传的文件类型,您可以使用白名单和扩展名检查,但不要停止.您还应该通过查看文件的内容来确认它是否符合预期的格式.这可能是至关重要的,因为一个坏家伙可以将文件头插入到上传的文件中,并将您的系统用作僵尸来传递恶意软件. 第二,您应该对上传的文件执行病毒扫描,您可以使用命令行执行本地病毒扫描程序.这是一个很容易的事情,包括趋势科技在内的许多病毒扫描,除非您正在查看大量的文件上传,否则在您的服务器上不应该是一个巨大的税. 确保您不会以用户提交的数据(通过GET或POST下载)传递路径,因为这可能会使您受到路径遍历攻击.如果您的用户需要从浏览器下载文件,您可以创建一个存储记录的数据库,然后创建一个控制器或页面,该控制器或页面将根据数据库记录和用户对该记录的访问权,而不是提供用户可以控制和使用从服务器获取文件的路径. 确保您将保存到的目录不能被Web服务器读取,这样他们不会上传恶意软件脚本,然后通过HTTP从浏览器执行它 确保您针对某些反XSS库验证所有用户输入(Microsoft提供一个http://www.microsoft.com/en-us/download/details.aspx?id=28589) 希望有帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |