Czy brakuje czegoś lub core asp.net pozwala na umieszczanie znacznika skryptu w polach tekstowych użytkownika? W poprzednich wersjach asp.net mvc musiałem zezwolić na to za pomocą atrybutu [AllowHtml].Włączanie sprawdzania poprawności żądania podstawowego asp.net
Czy istnieje sposób, w jaki sposób sprawdzanie poprawności może zawierać potencjalnie niebezpieczne wartości?
jestem wolny, aby przedstawić wartość jak
<script src='http://test.com/hack.js'></script>
podczas formularza pocztą.
Model:
using System.ComponentModel.DataAnnotations;
namespace Test.Models
{
public class TestModel
{
[MaxLength(500)]
public string Content { get; set; }
}
}
Kontroler:
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");
}
}
}
Widok:
@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>
To dobre pytanie. Jeszcze nie uderzyłem w ten problem. Wszystko w ASP.NET Core jest opcjonalne, więc jestem pewien, że musisz dodać go jako oprogramowanie pośrednie, ale nie jestem pewien, czy został już przeniesiony. Mam nadzieję, że się mylę. –
W System.Web istnieje klasa o nazwie "System.Web.CrossSiteScriptingValidation", która wydaje się przechowywać logikę do określania, czy żądanie jest nieprawidłowe. Wygląda dość prosto z szybkiego spojrzenia. Może to może być użyte do wybicia jakiegoś oprogramowania pośredniego, jeśli coś jeszcze nie istnieje. –
Wygląda na to, że być może prośba o usunięcie została usunięta, ponieważ nie powinniśmy na niej polegać ze względów bezpieczeństwa. Zamiast tego powinniśmy zweryfikować dane wejściowe i zakodować niezaufane dane wyjściowe http://forums.asp.net/t/2032496.aspx?Gdzieś jest+AllowHtml –