Nei*_*eil 11 c# asp.net security file-upload
我有一个公开的网络表单,具有文件上传功能.现在,文件要么保存在Web服务器上,要么作为附件发送到电子邮件中.我们对大小有限制,即15MB和上传文件的扩展名.我们的SMTP服务器位于同一Web服务器上.我担心安全问题,因为任何人都可以上传恶意文件并对我们的生产Web服务器产生影响.
公众可以通过这种文件上传控制获得的风险是什么?无论如何,有人可以通过上传恶意文件在Web服务器上执行恶意脚本.
我做了一些研究,发现了以下几点
这些只是几点,但我想知道文件上传中的任何盲点.
要回答有关可能的安全漏洞的问题,是的,即使您没有将文件保存到磁盘,也可以明确地在应用程序和用户中创建漏洞.但是你可以采取一些防线来验证.
第一个是显然限制可以上传的文件类型,你可以使用白名单和扩展检查但不要停在那里. 您还应该通过查看文件的内容进行验证,以确保它符合预期的格式.这可能很关键,因为坏人可以将文件头注入上传的文件中,并将您的系统用作僵尸来传播他的恶意软件.
其次,您应该针对上传的文件运行病毒扫描,您可以使用命令行执行本地病毒扫描程序.对于包括趋势科技在内的许多病毒扫描来说,这很容易做到,除非您正在查看大量的文件上传,否则它不应该对您的服务器征收巨额税.
确保您永远不会将路径作为用户提交的数据传递(通过GET或POST进行下载),因为这会使您暴露于路径遍历攻击.如果您的用户需要从浏览器下载文件,您可以创建一个存储记录位置的数据库,然后创建一个控制器或页面,根据数据库记录和用户访问该记录来获取它,而不是提供用户可以控制并用于从服务器获取文件的路径.
确保Web服务器无法读取您将保存到的目录,这样他们就不会上传恶意软件脚本,然后通过HTTP从浏览器中执行它
确保您针对某些反XSS库验证所有用户输入(Microsoft提供了一个http://www.microsoft.com/en-us/download/details.aspx?id=28589)
希望有所帮助!
归档时间: |
|
查看次数: |
9271 次 |
最近记录: |