@using (Html.BeginForm("Index", "Checkout", FormMethod.Post))
{
@Html.AntiForgeryToken(App.WebUI.Helpers.SecurityHelpers.AntiforgeryTokenSalt)
<input type="hidden" name="amount" value="@Model.PackageCost"/>
<input type="hidden" name="currency" value="$"/>
<input type="hidden" name="itemdescription" value="@Model.PackageDescriptor"/>
<input type="hidden" name="type" value="digital"/>
<input type="submit" value="Confirmar" class="btn primary frmsubmit" />
}
Я отправляю эту форму контроллеру Checkout:
public class CheckoutController : Controller
{
[HttpPost]
[ValidateAntiForgeryToken(Salt = SecurityHelpers.AntiforgeryTokenSalt)]
public ActionResult Index(decimal amount, string currency, string itemDescription, string type)
{
//Magic here.
Как соль в Форме, так и в Контроллере одинаковы.
public static class SecurityHelpers
{
public const string AntiforgeryTokenSalt = "tokenFooYouTolkienBladeRunner";
}
У меня сложилось впечатление, что это помешает пользователю изменить скрытое значение в форме с помощью Firebug и отправить его. то есть. Покупка телевизора за 2 $.
Тем не менее, я могу изменить значения с помощью Firebug и отправить его, и он проходит нормально.
Что мне здесь не хватает?