我有一个公开的网络表单,具有文件上传功能.现在,文件要么保存在Web服务器上,要么作为附件发送到电子邮件中.我们对大小有限制,即15MB和上传文件的扩展名.我们的SMTP服务器位于同一Web服务器上.我担心安全问题,因为任何人都可以上传恶意文件并对我们的生产Web服务器产生影响.
公众可以通过这种文件上传控制获得的风险是什么?无论如何,有人可以通过上传恶意文件在Web服务器上执行恶意脚本.
我做了一些研究,发现了以下几点
这些只是几点,但我想知道文件上传中的任何盲点.
我在页面上有一个简单的ASP .Net文件上传控件.我有以下web.config设置
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000" />
</requestFiltering>
</security>
</system.webServer>
<system.web>
<httpRuntime maxRequestLength="524288" executionTimeout="120000" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
我在我的开发盒上使用IIS 7.5,在Web服务器上使用IIS 7.
如果我上传大小为7MB的文件,它工作正常.
但是当我上传10MB的文件时,它会抛出以下异常
我在页面上有一个简单的ASP .Net文件上传控件.我有以下web.config设置
Exception Details: System.Web.HttpException: Maximum request length exceeded.
Stack Trace:
[HttpException (0x80004005): Maximum request length exceeded.]
System.Web.HttpRequest.GetEntireRawContent() +8772610
System.Web.HttpRequest.GetMultipartContent() +62
System.Web.HttpRequest.FillInFormCollection() +168
System.Web.HttpRequest.get_Form() +68
System.Web.TraceContext.InitRequest() +910
System.Web.TraceContext.VerifyStart() +143
System.Web.HttpApplication.AssignContext(HttpContext context) +118
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +464
Run Code Online (Sandbox Code Playgroud)
任何帮助将受到高度赞赏.我知道这个问题已被多次询问过,但这些解决方案都不适合我.
我们正在使用Sitecore内容管理系统.
我们限制并发sitecore用户数.我们面临一个独特的问题,当用户尝试从Medial Library上传图像时,sitecore正在创建一个新会话.因此,我们很快就达到了许可限制,并且有人必须使用sitecore/shell/Applications/Login/Users/kick.aspx页面手动启动用户会话.
任何帮助将受到高度赞赏.
我们正在使用Sitecore 6.4.1
谢谢,
我们有两条A记录指向相同的公共 IP 地址:
www.example.com IN A 192.*.*.*example.com IN A 192.*.*.*我们有 Verisign 颁发的证书www.example.com。现在,当用户输入 时https://www.example.com/xyz,一切都按预期正常工作。
但是当我们使用 时https://example.com/xyz,浏览器会抛出错误:
“该网站的安全证书有问题”
并要求用户做出是否信任并想要继续的决定。
现在这里的最佳实践应该是什么:
*.example.com在 DNS 中使用以下设置:
www.example.com IN A 192.*.*.*example.com IN CNAME www.example.com在 .Net 管道中编写一个 HTTP 模块,以便在用户键入 .Net 时重定向example.com/xyz用户www.example.com/xyz。我知道不建议这样做。
我们想做一些像chase.com正在做的事情。如果您输入,chase.com它会将您带到https://www.chase.com/.