Как разрешить сканирование кода безопасности SCS0016 в контроллере API

Мы внедрили контроллер API погоды для обновления данных о погоде и унаследовалиControllerBaseв контроллере API сAPIControllerфильтр действий, как показано ниже, и включил сканирование кода безопасности.

      using Microsoft.AspNetCore.Mvc;

namespace SampleApiApplication.Controllers
{
    [ApiController]
    public class WeatherForecastController : ControllerBase
    {
        
        [HttpPost]
        [Route("UpdateWeatherDetails")]
        public IEnumerable<WeatherForecast> PostWeatherDetails(WeatherForecast weatherForecast)
        {
            // Some lines of code to implement
        }
    }
}

Я могу публиковать данные содержимого Json, но не могу публиковать данные с типом содержимого, какв APIUpdateWeatherDetails.

Чтобы решить вышеуказанную проблему, я использовал [FromForm]атрибут для публикации данных формы, как показано ниже, теперь я могу публиковать данные формы и данные Json. Но я столкнулся с предупреждением безопасности.

      using Microsoft.AspNetCore.Mvc;

namespace SampleApiApplication.Controllers
{
    [ApiController]
    public class WeatherForecastController : ControllerBase
    {
        [HttpPost]
        [Route("UpdateWeatherDetails")]
        [Consumes("application/json")]
        public IEnumerable<WeatherForecast> PostWeather([FromBody] WeatherForecast weatherForecast)
        {
            return PostMethod(weatherForecast);
        }

        [HttpPost]
        [Route("UpdateWeatherDetails")]
        public IEnumerable<WeatherForecast> PostWeatherDetails([FromForm] WeatherForecast weatherForecast)
        {
            // Some lines of code to implement
        }
    }
}

Я подумал, что после добавления атрибута FromForm только с предупреждением о безопасности и удалил его, теперь нет предупреждения о безопасности, но я не могу получить привязку данных к параметру. Теперь я удалил [ApiController]атрибут и попытался опубликовать данные формы, теперь я могу публиковать данные формы.

Но я снова получаю предупреждение системы безопасности**SCS0016**для этого метода.

Как решить вышеописанноеSecurityвыдать и получить данные, отправленные с application/x-www-form-urlencodedработающий?

0 ответов

Другие вопросы по тегам