Я читаю учебники на ASP .NET Core и Razor Pages.
У одного из них, когда дело касается атрибута BindProperty
, есть замечания, которые я нахожу едва понятными:
Страницы бритвы, по умолчанию, связывают свойства только с не-GET глаголами.Привязка к свойствам может уменьшить объем кода, который вы должны написать.Привязка уменьшает код, используя то же свойство для визуализации полей формы (<input asp-for="Customer.Name" />
) и принятия ввода.
По соображениям безопасности необходимо включить привязку данных запроса GET к свойствам модели страницы .Проверьте пользовательский ввод, прежде чем сопоставить его со свойствами.Включение этого поведения полезно при рассмотрении сценариев, в которых используются строка запроса или значения маршрута.
Чтобы привязать свойство к запросам GET, задайте для свойства SupportsGet
атрибута [BindProperty]
значение true: [BindProperty(SupportsGet = true)]
(выделено мной) Источник: Введение в Razor Pages в ASP.NET Core § Написание базовой формы
Я не понимаю.Почему необходимо принимать дополнительные меры безопасности при работе с GET-запросами?
Насколько я могу судить, GET-запросы должны быть безопаснее, не менее безопасными, чем POST-запросы, потому что GET получает только данные,в то время как POST отправляет данные на сервер.Таким образом, чаще всего запросы POST требуют дополнительных мер безопасности, а запросы GET не нужны.
И все же сейчас я читаю, что нормально делать X с POST, но осторожно, не делайте этого сПолучить безрассудно, вы должны подписаться и быть предупреждены, принять меры предосторожности!
Зачем нужны эти предупреждения?Какие уязвимости безопасности можно внедрить, привязав данные запроса GET к свойствам модели страницы?И почему эти уязвимости не применимы к запросам POST?