Защита возвращаемых строк запросов со стороннего веб-сайта - PullRequest
2 голосов
/ 19 февраля 2012

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

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

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

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

1 Ответ

2 голосов
/ 19 февраля 2012

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

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

...