我必须创建一个实用程序,通过该实用程序,用户可以使用asp.net FileUpload服务器控件上载singh或多个文件。
我也在寻找同样的安全问题。在我们的头脑中,哪些要点侵犯了安全。在我看来,一个主要的问题是与病毒有关--手段。
期间扫描病毒文件
可能有几个安全风险。请与建议的解决方案讨论这些问题/风险。
对此的任何答复都是非常有价值的。
提前感谢
发布于 2011-02-11 11:48:22
风险集中在这样一个事实:淘气的人会上传那些可以在web服务器机器上执行的东西,并造成问题。
防止恶意文件上传相关问题的一种实用方法是通过检查PostedFile.ContentType
属性限制服务器将接受的文件类型。这将识别MIME类型。最好排除像.exe
这样的东西,当然,在MS生成的文件(如.doc
和.xls
)中存在宏和VBA自动化方面的问题。
发布于 2018-06-01 15:46:11
根据我在开发文件共享系统方面的经验,检查文件扩展名很简单,但还不够,iis 6中存在一个漏洞,黑客可以通过添加一个";“到文件名的一部分,并将它们的shell脚本作为图像上传到其中,从而绕过此检查!
最好的方法是保存用户上传的文件,例如,如果站点文件夹是:
c:\hosting-space\myuser\mydomain.com\www-root\
您的代码必须将文件保存到:
c:\hosting-space\myuser\mydomain.com\USERUPLOADs\
通过这个技巧,iis用户不能直接访问上传的病毒或shell脚本!
并使用.aspx文件间接读取文件流。
<img src="/loadfiles.aspx?name=?????" />
好处很多,例如,您可以编写一个统计计数器或检查用户会话,或者避免跨站点访问您的用户文件,无论您需要一些编码技巧来添加对拥抱文件的下载简历支持,并且应该负责脚本超时和.
我自己没有测试的其他解决方案是使用web.congif来避免来自upload文件夹的运行脚本权限:
<location path="upload">
<system.webServer>
<handlers accessPolicy="Read" />
</system.webServer></location>
https://stackoverflow.com/questions/4966893
复制相似问题