Защита возвращающихся запросов от стороннего веб-сайта

Итак, я внедряю платежную систему с 2co на своем веб-сайте. Я использую их "перенаправление заголовков", которые возвращают клиента на страницу ASPX на моем веб-сайте с кучей повторений после успешной оплаты.

В любом случае, мне было интересно. Каков надлежащий способ обеспечить это? Что, если клиент набрал параметры, такие как "Payment.aspx? Params-here", и добавил кредиты по своему усмотрению.

Как я могу убедиться, что это 100% подлинный?

Предложения? Спасибо!

2
задан user1027620 19 февр. '12 в 5:56
источник поделиться

1 ответ

Подход решения к параметрирование параметров обычно сопоставляет параметры запроса с тем, что невозможно легко манипулировать, например. используя одностороннюю хеш-функцию для создания дайджеста для отправки вместе с исходным параметром и ограничения продолжительности, в течение которого действительное отображение/дайджест является действительным. Если дайджест соответствует параметру запроса, вы знаете, что запрос не был изменен.

например. ваш 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 используют эту функцию по умолчанию.

2
ответ дан BrokenGlass 19 февр. '12 в 6:19
источник поделиться

Другие вопросы по меткам