Incapsula блокирует файлы загрузки HTML, содержащие опасные теги - PullRequest
0 голосов
/ 14 мая 2018

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

...