cotonti.com : Один из параметров запроса недействиделен или устарел. https://www.cotonti.com Останні повідомлення в темі Cotonti en Sat, 27 Dec 2025 15:09:50 -0000 Yusupov Все правильно, чтобы получить данные от Робокассы нужно отключить защиту от междоменного постинга через хук input. Но делать это следует с умом, чтобы отключать только при необходимых условиях запроса.

Например:

if(($_GET['e'] == 'billing' || $_GET['r'] == 'billing') && $_SERVER['REQUEST_METHOD'] == 'POST')
{
    define('COT_NO_ANTIXSS', 1) ;
    $cfg['referercheck'] = false;
}

Условия ставите свои в зависимости от места куда приходят данные на ваш сайт. Используем подобную конструкцию в своем платежном модуле.

]]>
Вт, 30 Лип 2013 18:11:36 -0000
Dr2005alex Сам сейчас работаю над данным скриптом робокассы. Советы действительно дельные. Отключить проверку XSS  в хуке input.

а проверить от кого пришло можно по входящим данным от робокассы. Даже когда усер оплатил и ему предлагается вернуться, то передаются и дополнительные параметры по которым можно сделать фильтр.

Читай инструкцию http://www.robokassa.ru/ru/DocTest/Ru/Interface.aspx

Переадресация пользователя при успешной оплате (SuccessURL)

В случае успешного исполнения платежа Покупатель может перейти по данному адресу.

Методом, выбранным при регистрации, будут переданы следующие параметры ("чек" об оплате): 

OutSum=nOutSum&
InvId=nInvId&
SignatureValue=sSignatureValue&
Culture=sCulture
[&пользовательские_параметры]

nOutSum
-полученная сумма. Сумма будет передана в той валюте, которая была указана при регистрации магазина. Формат представления числа - Разделитель точка.
nInvId
- номер счета в магазине
sSignatureValue
- контрольная сумма MD5 - строка представляющая собой 32-разрядное число в 16-ричной форме и любом регистре (всего 32 символа 0-9, A-F). Формируется по строке, содержащей некоторые параметры, разделенные ':', с добавлением sMerchantPass1 (указывается при регистрации) т.е. nOutSum:nInvId:sMerchantPass1[:пользовательские параметры, в отсортированном порядке]. 
К примеру если при инициализации операции были переданы пользовательские параметры shpb=xxx и shpa=yyy то подпись формируется из строки ...:sMerchantPass1:shpa=yyy:shpb=xxx
sCulture
- язык общения с клиентом, выбранный при инициализации оплаты. Значения: en, ru.
 

Переход пользователя по данному адресу с корректными параметрами (соответствия CRC) означает, что платеж по реквизитам Продавца выполнен успешно. Сервис несет финансовую ответственность перед Продавцом в соответствии с Соглашением за достоверность такого подтверждения.

Однако для дополнительной защиты желательно, чтобы факт оплаты платежа проверялся скриптом исполняемым при переходе на Result URL, или путем запроса XML-интерфейса о результате данной платежной операции, и только при реальном наличии счета с номером nMerchantInvId в БД магазина.

Переадресация пользователя при отказе от оплаты (FailURL)

В случае отказа от исполнения платежа Покупатель перенаправляется по данному адресу.

Для того, чтобы Продавец мог разблокировать заказанный товар на складе при отказе от его оплаты методом, выбранным при регистрации, будут переданы параметры: 

OutSum=nOutSum&
InvId=nInvId&
Culture=sCulture
[&пользовательские_параметры]

nOutSum
-полученная сумма. Сумма будет передана в той валюте, которая была указана при регистрации магазина. Формат представления числа - Разделитель точка.
nInvId
- номер счета в магазине
sCulture
- язык общения с клиентом, выбранный при инициализации оплаты. Значения: en, ru.
]]>
Пн, 29 Лип 2013 17:10:43 -0000
inkerman Не совсем

У Робокассы есть адрес по которому она передает  результат обработки оплаты (там номер, сумма, контрольная подпись и т.д.) и есть еще два адреса на которые она перенаправляет пользователя (один - успех, а второй адрес - ошибка).

Соответственно скриптовый адрес - ок

А вот юзерские адреса (успеха и ошибки) как защитить то? При этом именно на них возникает ошибка XSS

]]>
Пн, 29 Лип 2013 15:09:36 -0000
Alex300 отключите только для запросов от платежной системы. Дополнительным хуком. Как в примере выше, там правда отключается для других запросов. Вы же все равно должны проверять запрос на безопасность, в том и числе и контрольную подпись, которой платежная система подписывает запрос. Так что ничего страшного.

]]>
Пн, 29 Лип 2013 14:54:44 -0000
inkerman Alex300, но если отключить, то это же будет весь сайт -  открытая дыра для кулхацкеров, не?

]]>
Пн, 29 Лип 2013 11:06:12 -0000
Alex300 Для запросов от платежной системы отключите проверку XSS, пример рассматривался тут: http://www.cotonti.com/forums/36432?m=posts

]]>
Пн, 29 Лип 2013 08:32:09 -0000
Dayver Сам по себе не может а вот если его передать вместе с формой которую отправляем на сервер оплаты(подобное должно предусматриватся платежной системой) с условием что бы он вернул его при возврате на свой сервер (стыкался с подобным при прикручивании какойто платежки - кажысь то была робокаса)

]]>
Пн, 29 Лип 2013 07:29:57 -0000
inkerman При использовании системы платежей, в случае успешного проведения оплаты пользователь отправляется на страницу с сообщением "Все ОК"

Но на siena получаю ошибку: Один из параметров запроса недействиделен или устарел. Вернитесь назад и попробуйте отправить форму заново.

На genoa подобного не замечал

С чем это может быть связано? могу предположить что не хватает переменной &x=, но ее сервер сторонний не может знать

Тип ссылки: http://site.ru/plug.php?e=billing&m=payment&mod=succes

 

]]>
Пн, 29 Лип 2013 06:31:43 -0000