Подход к решению проблемы подделки параметров обычно заключается в сопоставлении параметров запроса с чем-то, что не может быть легко обработано, например, с помощью односторонней хеш-функции для создания дайджеста для отправки вместе с исходным параметром и ограничения продолжительности, в течение которой конкретное отображение / дайджест является действительным. Если дайджест соответствует параметру запроса, вы знаете, что запрос не был подделан.
например. ваш URL
Payment.aspx?Amount=100
может стать
Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2
Вот старая, но все еще актуальная, подробная статья на эту тему: Передача защищенных от несанкционированного доступа параметров QueryString
В ASP.NET вы можете использовать Page.EnableEventValidation
, который использует скрытое текстовое поле как часть формы для проверки того, что запрос был отправлен из формы:
Если для свойства EnableEventValidation установлено значение true, ASP.NET
проверяет, что управляющее событие возникло из пользовательского интерфейса, который
был предоставлен этим контролем. Контроль регистрирует свои события во время
рендеринг, а затем проверяет события во время обратной или обратного вызова
обработки. Например, если элемент управления списком включает параметры с номером 1,
2 или 3, когда страница отображается, и если запрос обратной передачи
Получив указав опцию номер 4, ASP.NET вызывает исключение. Все
Управляемые событиями элементы управления в ASP.NET используют эту функцию по умолчанию.