Вопрос

Поэтому я внедряю платежную систему с 2CO на моем сайте. Я использую их «Redirect», который возвращает клиента на страницу ASPX на моем веб -сайте с помощью кучу QueryStrings после успешной оплаты.

Во всяком случае, мне было интересно. Как правильный способ обеспечить это? Что, если клиент напечатает параметры, таких как «платеж.

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

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

Это было полезно?

Решение

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

Например, ваш URL

Payment.aspx?Amount=100

мог стать

Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2

Вот старая, но все еще актуальная, подробная статья по теме: Переходные параметры защиты от несущих

В asp.net вы можете использовать Page.EnableEventValidation который использует скрытую текстовую поле как часть формы, чтобы подтвердить, что из формы был выдан запрос:

Когда свойство EnableEventValidation устанавливается на TRUE, ASP.NET проверяет, что событие управления возникло из пользовательского интерфейса, который был отображен этим управлением. Управление регистрирует свои события во время рендеринга, а затем проверяет события во время обращения с обратным обращением или обратным вызовом. Например, если элемент управления списком включает в себя параметры, пронумерованные 1, 2 или 3, когда страница отображается, и если получен запрос на отправку с указанием опции № 4, ASP.NET повышает исключение. Все элементы управления в ASP.NET используют эту функцию по умолчанию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top