首页 > 解决方案 > Incapsula 阻止包含危险标签的 HTML 上传文件

问题描述

我的网站现在正在使用 Incapsula (WAF) 来保护它在互联网上的安全。这里的问题是,在我的网站上,有一个功能允许用户上传 HTML 文件。如果文件包含危险标签,例如<script>, <iframe>,... Incapsula 将阻止该请求,结果是 HTML 文件未上传到服务器文件夹...

这是该功能的代码段:

选择 HTML 文件后,点击上传按钮,它将调用:

'ofd is OpenFileDialog
UploadHTMLFile(ofd.File.Name, ofd.File.OpenRead())

之后,有一个 WCF 服务会将文件流式传输到服务器文件夹:

Private Sub UploadHTMLFile(ByVal fileName As String, ByVal data As Stream)
    Dim baseUrl As String = Util.BuildAbsoluteUri().AbsoluteUri
    Dim ub As New UriBuilder(baseUrl & "myreceiver.ashx")
    ub.Query = String.Format("filename={0}", fileName)
    Dim c As New WebClient()
    AddHandler c.OpenWriteCompleted, Sub(sender, e)
                                         PushData(data, e.Result)
                                         e.Result.Close()
                                         data.Close()
                                     End Sub
    c.OpenWriteAsync(ub.Uri)
End Sub

Private Sub PushData(ByVal input As Stream, ByVal output As Stream)
    Dim buffer As Byte() = New Byte(4096) {}
    Dim bytesRead As Integer
    While (InlineAssignHelper(bytesRead, input.Read(buffer, 0, buffer.Length))) <> 0
        output.Write(buffer, 0, bytesRead)
    End While

End Sub

Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
    target = value
    Return (value)
End Function

似乎 Incapsula 通过上传请求检测到上传文件的内容,然后它发现了危险标签并阻止了该请求。

我们无法修改 Incapsula 的设置,因为这是在其上配置的安全规则。

你能在这种情况下给一些建议吗?有没有办法我们可以修改代码以防止 Incapsula 读取上传文件的内容...?

标签: .netvb.netsilverlightfile-uploadstream

解决方案


推荐阅读