Форма отправки POST отображает значения в URL.Разве это не должно их скрывать? - PullRequest
2 голосов
/ 18 октября 2011

Когда я использую HttpPost, не должны ли значения формы скрываться в моем URL?

Вот код Razor, который я использую для создания страницы подтверждения оплаты:

@using (Html.BeginForm("Index", "Checkout", new { amount = Model.PackageCost, currency = "$", itemDescription = Model.PackageDescriptor, type = "digital" }, FormMethod.Post))
{    
    <input type="submit" value="Confirmar" class="btn primary frmsubmit" />
}

В моем HTML это сгенерировано:

<form action="/Checkout?amount=50&amp;currency=%24&amp;itemDescription=Paquete%20Gold50%20%7C%2050%24%20(59%20lances)&amp;type=digital" method="post">    
    <input type="submit" value="Confirmar" class="btn primary frmsubmit" />
</form>

И когда я нажимаю кнопку «Подтвердить», чтобы отправить форму, это URL, по которому меня ведут:

http://localhost:5868/Checkout?amount=50&currency=%24&itemDescription=Paquete%20Gold50%20%7C%2050%24%20%2859%20lances%29&type=digital

Так что дает? Почему значения не скрыты, если это форма POST?

1 Ответ

4 голосов
/ 18 октября 2011

Потому что это не значения формы, а значения маршрута. Значения формы - это значения тегов <input >.

Я предполагаю, что вам не нужны никакие значения маршрута (пропустите третий параметр), и вместо этого создайте теги <input ...> с соответствующим значением по умолчанию. Если обычный пользователь не должен видеть их, используйте <input type="hidden"> (очевидно, это не функция безопасности).

Вы также должны использовать токены для защиты от подделки запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...