.net - 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 读取上传文件的内容...?
解决方案
推荐阅读
- .net - 是否可以在只有 4.6 .Net Framework 的系统上使用 .Net Framework 4.8 启动应用程序?
- sql - 列“l.Session_Device”必须出现在 GROUP BY 子句中或在聚合函数中使用
- python-3.x - 如何将空列添加到数据框中?- 跟进
- powershell - 激活虚拟环境在 powershell 中引发错误
- firebase - 使用其他网站的凭据创建 Firebase 身份验证
- python - python打包和GitHub的规范工作流程
- reactjs - VSCode React JSX 语法高亮显示损坏
- javascript - FlatList在本机反应中返回空白屏幕
- linux-kernel - 树莓派 4 的交叉编译内核
- php - 使用 Guzzle 执行批处理请求