Мой сайт сейчас используется 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 не могла прочитать содержимое файла загрузки ...?