Привет друзья услышали я хочу сделать insert и получаю следующую ошибку
Была обнаружена возможная стоимость Request. Опасный Form в клиенте (текст = "... обожай
Я понимаю, что это мера безопасности, чтобы предотвращать атаки из-за script
, вопрос состоит в том, что я нуждаюсь в одном insert
внутри моей базы данных текст с html, этот он этикетки полужирных шрифтов. И я схватил серию элементов html, кто-то знает, как я могу предотвращать это?
Это мой код
var myText = $('.Editor-editor');
var strData = myText.html();
var icono = 'manzana'
function InsertBeneficio(strData, icono) {
//console.log(data)
document.getElementById('modal-header').innerHTML = 'Agregar Beneficio';
document.getElementById('modal-body').innerHTML = `
`;
$("#exampleModal").modal("show");
И этот мой метод
[Authorize]
[HttpPost]
public ActionResult InsertBeneficios(string id_userCreated, string texto, string icono)
{
using (DBEnt db = new DBEnt())
{
var contacto = new HomeBeneficios()
{
texto = texto,
icono = icono
};
db.HomeBeneficios.Add(contacto);
//db..add(cat);
db.SaveChanges();
}
var action = "Insert";
var comments = "Beneficios ingresado por el usuario : ";
InsertInBitacora(id_userCreated, action, comments + id_userCreated);
return View("Index");
}
Ошибка:
Ошибка сервера в приложении '/'. Была обнаружена возможная стоимость Request. Опасный Form в клиенте (текст = "... обожай стоимости..."). Описание: ASP.NET он обнаружил данные в запросе, которые потенциально опасные, потому что они включают рукописный шрифт или разметку HTML. Возможно, что данные представляют попытку поместить в опасность безопасность приложения, как атака XSS. Если тип ввода приспособлен в приложении, смоги включать код на веб-странице, чтобы это позволять ясно. Чтобы получать больше информации, консультируйтесь http://go.microsoft.com/fwlink/?LinkID=212874. Детали исключения: System. Веб. HttpRequestValidationException: Была обнаружена возможная стоимость Request. Опасный Form в клиенте (текст = "... обожай Целей...").
Ошибка исходного кода:
Произвелось исключение, не контролируемое в течение выполнения Веб настоящего запроса. Информация об источнике и расположении исключения они могут идентифицироваться используя исключение следования следующей батарейки.
Следование батарейки:
[HttpRequestValidationException (0x80004005): Была обнаружена возможная стоимость Request. Опасный Form в клиенте (текст = "... обожай Целей...").] System. Веб. HttpRequest. ValidateString (String оценил, String collectionKey, RequestValidationSource requestCollection) +9926025 System. Веб. <> c __ DisplayClass280_0.b __ 0 (String key, String оценил) +23 System. Веб. HttpValueCollection. EnsureKeyValidated (String key) +9924087 System. Веб. HttpValueCollection. GetValues (String ямс) +18 System. Веб. Mvc. ValueProviderResultPlaceholder. GetResultFromCollection (String key, NameValueCollection collection, CultureInfo culture) +20 System. Веб. Mvc. NameValueCollectionValueProvider. GetValue (String key, Boolean skipValidation) +106 System. Веб. Mvc. ValueProviderCollection. GetValue (String key, Boolean skipValidation) +89 System. Веб. Mvc. DefaultModelBinder. BindModel (ControllerContext controllerContext, ModelBindingContext bindingContext) +267 System. Веб. Mvc. ControllerActionInvoker. GetParameterValue (ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +335 System. Веб. Mvc. ControllerActionInvoker. GetParameterValues (ControllerContext controllerContext, ActionDescriptor actionDescriptor) +105 System. Веб. Mvc. Async. <> c __ DisplayClass3_1.b __ 0 (AsyncCallback asyncCallback, Object asyncState) +640 System. Веб. Mvc. Async. WrappedAsyncResult
1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +14 System.Web.Mvc.Async.WrappedAsyncResultBase
1. Begin (AsyncCallback callback, Object state, Int32 timeout) +128 System. Веб. Mvc. Async. AsyncControllerActionInvoker. BeginInvokeAction (ControllerContext controllerContext, String actionName, AsyncCallback callback, Object state) +346 System. Веб. Mvc. <> c.b __ 152_0 (AsyncCallback asyncCallback, Object asyncState, ExecuteCoreState innerState) +27 System. Веб. Mvc. Async. WrappedAsyncVoid1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +30 System.Web.Mvc.Async.WrappedAsyncResultBase
1. Begin (AsyncCallback callback, Object state, Int32 timeout) +128 System. Веб. Mvc. Controller. BeginExecuteCore (AsyncCallback callback, Object state) +494 System. Веб. Mvc. <> c.b __ 151_1 (AsyncCallback asyncCallback, Object callbackState, Controller controller) +16 System. Веб. Mvc. Async. WrappedAsyncVoid1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +20 System.Web.Mvc.Async.WrappedAsyncResultBase
1. Begin (AsyncCallback callback, Object state, Int32 timeout) +128 System. Веб. Mvc. Controller. BeginExecute (RequestContext requestContext, AsyncCallback callback, Object state) +403 System. Веб. Mvc. Controller. System. Веб. Mvc. Async. IAsyncController. BeginExecute (RequestContext requestContext, AsyncCallback callback, Object state) +16 System. Веб. Mvc. <> c.b __ 20_0 (AsyncCallback asyncCallback, Object asyncState, ProcessRequestState innerState) +54 System. Веб. Mvc. Async. WrappedAsyncVoid1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +30 System.Web.Mvc.Async.WrappedAsyncResultBase
1. Begin (AsyncCallback callback, Object state, Int32 timeout) +128 System. Веб. Mvc. MvcHandler. BeginProcessRequest (HttpContextBase httpContext, AsyncCallback callback, Object state) +427 System. Веб. Mvc. MvcHandler. BeginProcessRequest (HttpContext httpContext, AsyncCallback callback, Object state) +48 System. Веб. Mvc. MvcHandler. System. Веб. IHttpAsyncHandler. BeginProcessRequest (HttpContext context, AsyncCallback cb, Object экстравосходит) +16 System. Веб. CallHandlerExecutionStep. System. Веб. HttpApplication. IExecutionStep. Execute () +105 System. Веб. HttpApplication. ExecuteStepImpl (IExecutionStep step) +50 System. Веб. HttpApplication. ExecuteStep (IExecutionStep step, Boolean& completedSynchronously) +163
Если estГЎs посылая в сервер cГіdigo Html (в твоем случае <> segГєn ты показываешь в комментариях), по умолчанию AcciГіn твоего Драйвера это interpretarГЎ как cГіdigo опасно и lanzarГЎ одна excepciГіn.
, Чтобы решать эту проблему, и если не важен безопасность из данных, полученных в Драйвере, ты можешь аннулировать это поведение aГ±adiendo в твой AcciГіn признак [ValidateInput(false)]
.
[Authorize]
[HttpPost]
[ValidateInput(false)]
public ActionResult InsertBeneficios(string id_userCreated, string texto, string icono)
{
using (DBEnt db = new DBEnt())
{
var contacto = new HomeBeneficios()
{
texto = texto,
icono = icono
};
db.HomeBeneficios.Add(contacto);
//db..add(cat);
db.SaveChanges();
}
var action = "Insert";
var comments = "Beneficios ingresado por el usuario : ";
InsertInBitacora(id_userCreated, action, comments + id_userCreated);
return View("Index");
}
Сначала, храни в базе данных, RAW HTML, а именно, чистый HTML, не кодируя даже не исправлений (sanitizings).
SegГєn она documentaciГіn: https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.allowhtmlattribute? view=aspnet-mvc-5.2
В твоей модели:
[AllowHtml] //Agrega este Data-Annotation.
public string PropiedadQueTieneHTML{ get; set; }
Это sГ,, - в момент INFORMACIГіN, SГЌ ИЛИ SГЌ показала (renderizar) HTML, должен быть "дезинфицированным", для этого используй ее librerГ - в: https://www.nuget.org/packages/HtmlSanitizer / С этим ты предотвращаешь проблемы атак XSS.
@Html.Raw(HtmlUtility.SanitizeHtml(Model.PropiedadQueTieneHTML))
Интересное ее librerГ - в: ты можешь видеть cГіdigo шрифт в https://github.com/mganss/HtmlSanitizer
И видеть часть Вашего функционирования в: http://xss.ganss.org/
Другая добавочная деталь, у каждого Веб разработчика есть обязанность проверки https://www.owasp.org для того, чтобы он понял cГіmo улучшать безопасность Ваших Веб приложений.
[ValidateInput(false)]
в acció n драйвера, который ты используешь
– fredyfx
01.10.2019, 20:39