ASP.NET MVC
Если вы используете asp.net mvc, вы можете использовать маркер защиты от подделки.По сути, на ваш взгляд, вы должны поместить следующий код:
@Html.AntiForgeryToken()
И на вашем контроллере вы поместите этот атрибут в верхнюю часть контроллера:
[ValidateAntiForgeryToken]
public ActionResult Foo()
{
// Foo code
}
Это гарантируетчто пользователь не может отправить форму с удаленного сайта, потому что он не может сгенерировать токен.Вы также можете создать токен с солью.
Веб-формы ASP.NET
Для веб-форм asp.net вы можете переопределить метод OnInit и установить ViewStateUserKey наидентификатор сессии.Веб-формы будут проверять состояние с проверкой MAC, действуя как токен защиты от подделки.Поскольку злоумышленник не может сгенерировать действительное состояние просмотра (поскольку у него нет возможности сгенерировать действительный MAC-адрес, поскольку он не может поместить идентификатор сеанса в состояние просмотра), MAC-адрес завершится ошибкой.Вам придется делать это на каждой странице или создавать базовый класс, который уже переопределяет oninit и делает это.
public partial class Default : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.ViewStateUserKey = Session.SessionID;
}
}