Потенциально опасное значение Request.Form обнаружено клиентом, публикующим данные и файл в веб-интерфейсе. - PullRequest
0 голосов
/ 23 мая 2018

У меня есть форма, которую я использую для публикации данных и файлов на web api endpoint.Одно из полей данных - RichTextField с использованием плагина summernote.

Запись сценария angularjs на endpoint выглядит следующим образом:

$scope.transaction = {};
var files = $scope.myFile;
var fd = new FormData();

angular.forEach(files, function (value, key) {
    fd.append("file" + key, value[0]);
});

fd.append("fileContent", JSON.stringify({ fileContent: $scope.transaction }));

dataService.uploadFile(baseAddress + "/Generate", fd)
.success(function (data) {}).error(function (data) {  });

Конечная точка, принимающая запрос, выглядит следующим образом:

  [HttpPost]
    public async Task<IHttpActionResult> Generate()
    {
        try
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

           var contentResult = System.Web.HttpContext.Current.Request.Form;                
           var key = contentResult.AllKeys[0];
           var val = contentResult.GetValues(key)[0];

На этомточка var val = contentResult.GetValues(key)[0]; Я получаю это сообщение об ошибке:

A potentially dangerous Request.Form value was detected from the client

Я пробовал это:

[System.Web.Http.HttpPost, System.Web.Mvc.ValidateInput(false)]

также

<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />

1 Ответ

0 голосов
/ 23 мая 2018

Вы должны разрешить теги html, так как данные Summernote содержат их.Для этого вам нужно добавить AllowHtmlAttribute в ваш метод.

Возможно, вам придется немного поработать, поскольку это позволяет довольно легко выполнять xss и другие операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...