Bin ich etwas fehlt oder asp.net Core ermöglicht Skript-Tag in Benutzertextfelder zu veröffentlichen? In früheren Versionen von asp.net mvc musste ich das Attribut [AllowHtml] zulassen.Aktivieren Sie asp.net Core Request Validierung
Gibt es eine Möglichkeit, die Validierung gegen potenziell gefährliche Werte zu aktivieren?
Ich bin frei Wert wie
<script src='http://test.com/hack.js'></script>
während Form Post einzureichen.
Modell:
using System.ComponentModel.DataAnnotations;
namespace Test.Models
{
public class TestModel
{
[MaxLength(500)]
public string Content { get; set; }
}
}
Controller:
using Microsoft.AspNetCore.Mvc;
using Test.Models;
namespace Test.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
var model = new TestModel { Content = "Test" };
return View();
}
[HttpPost]
public IActionResult Index(TestModel model)
{
if(!ModelState.IsValid)
return View(model);
return Content("Success");
}
}
}
Ausblick:
@model TestModel
<form asp-action="Index" asp-controller="Home" method="post">
<div asp-validation-summary="All"></div>
<label asp-for="Content">Content<strong>*</strong></label>
<span asp-validation-for="Content"></span>
<input asp-for="Content" type="text" />
</div>
</form>
Das ist eine gute Frage. Ich habe dieses Problem noch nicht erreicht. Alles in ASP.NET Core ist opt-in, also bin ich mir ziemlich sicher, dass Sie es als Middleware hinzufügen müssen, aber ich bin mir nicht sicher, ob es schon portiert wurde. Hoffentlich liege ich falsch. –
In System.Web gibt es eine Klasse mit dem Namen 'System.Web.CrossSiteScriptingValidation', die scheinbar die Logik enthält, um festzustellen, ob die Anfrage ungültig ist. Sieht aus einem kurzen Blick einfach genug aus. Vielleicht könnte das verwendet werden, um Middleware zu knacken, wenn etwas nicht bereits existiert. –
Es scheint, dass Requestvalidation entfernt wurde, weil wir nicht aus Sicherheitsgründen darauf angewiesen sein sollten, stattdessen sollten wir die Eingabe validieren und die nicht vertrauenswürdige Ausgabe verschlüsseln http://forums.asp.net/t/2032496.aspx?Where is isAllowHtml –