Яндекс.Маркет ошибка 403 Есть решение

1

Плагин Яндекс.Маркет экспорт в YML при попытке вручную экспортировать данные выдает ошибку:

Ошибка #403

Вебасист You don't have permission to access requested URL on this server.

Please contact app developer.

При этом по крону и при запросе со стороны прайс-агреатора файл создается без ошибок.

Последний раз вручную экспортировал 22/05 и ранее проблем не наблюдалось. Кроме текущих обновлений других изменений не делал.

В чем может быть причина и как с этим бороться?

11 комментариев

  • +3
    Tihlan Tihlan 1 июня 2017 13:26 #

    У меня похожая ситуация с 403. Как только я ставлю домашний регион Москва, то сразу получаю 403.

    Ставлю Московская область и все ОК. Тестирование ошибки продолжается.

  • +1

    Включите режим отладки в настройках "Инсталлера" и повторите попытку экспорта. В этом режиме будет показано более подробное сообщение об ошибке. Покажите его текст.

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

  • +1
    Сергей forcom.ru Сергей forcom.ru 30 мая 2017 00:45 #

    в режиме отладки выдает следующее:

    CSRF Protection
    code 403
    /var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php (248)

    ## /var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php(248)
    #0 /var/www/manager/data/www/forcom.ru/wa-system/config/waSystemConfig.class.php(59): waAppConfig->init()
    #1 /var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php(38): waSystemConfig->__construct('backend', '/var/www/manage...')
    #2 /var/www/manager/data/www/forcom.ru/wa-system/config/waSystemConfig.class.php(409): waAppConfig->__construct('backend', '/var/www/manage...', 'shop', 'ru_RU')
    #3 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(86): waSystemConfig::getAppConfig('shop', 'backend', '/var/www/manage...', 'ru_RU')
    #4 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(1634): waSystem::getInstance('shop', NULL, 1)
    #5 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(544): wa('shop', 1)
    #6 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/shop/')
    #7 /var/www/manager/data/www/forcom.ru/index.php(7): waSystem->dispatch()
    #8 {main}

    /var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php around line 248

    243 }
    244
    245 $this->info = include($this->getAppPath().'/lib/config/app.php');
    246 if ($this->environment == 'backend' && !empty($this->info['csrf']) && waRequest::method() == 'post') {
    247 if (waRequest::post('_csrf') != waRequest::cookie('_csrf')) {
    >>248 throw new waException('CSRF Protection', 403);
    249 }
    250 }
    251 waAutoload::getInstance()->add($this->getClasses());
    252
    253 if (file_exists($this->getAppPath().'/lib/config/factories.php')) {

    Request

    array(
    'plugin' => 'yandexmarket',
    'module' => 'run',
    'profile' => array(
    'name' => 'Price.ru',
    'id' => '2',
    ),
    'lifetime' => '86400',
    'company_name' => 'Магазин Форком',
    'company' => 'Магазин Форком',
    'company_phone' => '',
    'domain' => 'www.forcom.ru/*',
    'ssl' => '1',
    'utm_source' => 'priceru',
    'utm_medium' => 'price',
    'utm_campaign' => 'Price.ru',
    'custom_url' => '',
    'hash' => '',
    'product_ids' => '',
    'category_ids' => '',
    'set_id' => '5000',
    'type_id' => '1',
    'export' => array(
    'skip_ignored' => '1',
    'min_price' => '',
    'compare_price' => '1',
    'sku' => '1',
    'sku_group' => '',
    ),
    'shop' => array(
    'adult' => 'false',
    'cpa' => 'false',
    'store' => 'true',
    'pickup' => 'true',
    'delivery' => 'true',
    'local_delivery_order_before' => '24',
    'local_delivery_estimate' => '2-3',
    'local_delivery_cost' => '450',
    ),
    'shipping_methods' => array(
    'dummy' => '1',
    ),
    'map' => array(
    'simple' => array(
    'vendor' => array(
    'source' => 'feature:brand',
    'text' => '',
    ),
    'vendorCode' => array(
    'source' => 'field:sku',
    'text' => '',
    ),
    'name' => array(
    'source' => 'field:name',
    'text' => '',
    ),
    'description' => array(
    'source' => 'field:summary',
    'text' => '',
    ),
    'available' => array(
    'source' => 'field:count',
    'text' => '',
    ),
    'sales_notes' => array(
    'source' => 'text:%s',
    'text' => 'Минимальная сумма заказа неограничена. Минимальная партия - кратно упаковке. При покупке за наличный расчет - без предоплаты, в оставльных случаях - 100% предоплата.',
    ),
    'min-quantity' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'step-quantity' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'manufacturer_warranty' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'country_of_origin' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'adult' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'barcode' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'cpa' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'fee' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'bid' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'cbid' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'weight' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'age' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'store' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'pickup' => array(
    'source' => 'value:true',
    'text' => '',
    ),
    'delivery' => array(
    'source' => 'value:true',
    'text' => '',
    ),
    'local_delivery_days' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'local_delivery_cost' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'rec' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    ),
    'vendor.model' => array(
    'downloadable' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'vendor' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'vendorCode' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'model' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'description' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'available' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'typePrefix' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'sales_notes' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'min-quantity' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'step-quantity' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'manufacturer_warranty' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'seller_warranty' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'expiry' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'country_of_origin' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'adult' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'barcode' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'cpa' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'fee' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'bid' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'cbid' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'weight' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'dimensions' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'age' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'store' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'pickup' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'delivery' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'local_delivery_days' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'local_delivery_cost' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'rec' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    ),
    'book' => array(
    'downloadable' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'name' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'author' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'description' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'available' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'publisher' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'sales_notes' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'min-quantity' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'step-quantity' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'cpa' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'fee' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'bid' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'cbid' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'series' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'year' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'ISBN' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'volume' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'part' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'language' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'binding' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'page_extent' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'table_of_contents' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'weight' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'age' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'store' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'pickup' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'delivery' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'local_delivery_days' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'local_delivery_cost' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'rec' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    ),
    'medicine' => array(
    'vendor' => array(
    'source' => 'skip:',
    'text' => '',
    ),
    'vendorCode' => array(
    'source' => 'skip:',
    ),
    ),
    ),
    'tz' => 'Asia/Baghdad',
    'oldtz' => 'Europe/Moscow',
    'screenMode' => 'max',
    '_ym_uid' => '1480616306397201956',
    '_ga' => 'GA1.2.1288682540.1480616309',
    'last_visit' => '1496074785144::1496085585144',
    'shop_viewed' => '671635,663677,663863,677440,672728,675014,670028,662557,705309,704606,675094,674879,677462,707715,663240,669494,663257,677119,663249,662628,666233,711811,663303,663861,663342,663474,662532,665555,663258,663266',
    '__utma' => '133969305.1288682540.1480616309.1482524508.1483403399.5',
    '__utmz' => '133969305.1482449089.3.2.utmcsr=sadtech.ru|utmccn=(referral)|utmcmd=referral|utmcct=/shop/index.php',
    'last_page' => '1^^^/webasyst/shop/?action=importexport',
    'reviewsplus-pp' => '20',
    'referer' => 'http://yandex.ru/clck/jsredir?from=yandex.ru%3Byandsearch%3Bweb%3B%3B&text=&etext=1436.2teTfCjynkJBy7QDvAPRz1FwCOAbBMPjYK9STmM0poKx0Toiv3rs27ixgtux0dytqrMP9x_aQtacBkcpMyEnqg.d9c697ef67d7294f4b603c35855debb142cdb479&uuid=&state=WkI1WI4IbJHybCQJFouMIRyO-MjY1ZFm9FbLhN6cLtk4qmqxZleu_xdPRHbOi1CJf8V5Ny5nef0U7VMyj2t-h6abNV4RyT1eMv005tl5NR8VzT7pLF-wy0sgAw888ITl&&cst=AiuY0DBWFJ5fN_r-AEszk9yxWwwVth7URZVwGD6d0mzCdwqsZqvUbGMezmpzzqwqpoDIN_m2-h1ehPQYKD46ah3bZkBVCn2x39HtClhiWgpztfCBJnGlLuII4a8l2y6me64khLRsdARVYjwbhde3JWo-yisQC5dkJEWtvDOOhraRclbrfzGmsA-pP_kTqL7bxsJjIXY0xnoUb_do78IkGnldOm2hUDvohWckJrP5uquOxtn2X5fPkgXd-t5rVCtaVdyv0zkNI5vIXQrI76xfig,,&data=UlNrNmk5WktYejR0eWJFYk1LdmtxanFmV01STlZOWlQ3WU1kT2cyczMxTTR5VVFjU19GWEloV0d0ckgzdWxrMTNFTU1OUHlpWE9mLW42UXZfb0M3VHNXcVRaSkVwWUE0&sign=021305bb0bea1add266a03aaf45dad08&keyno=0&b64e=2&ref=orjY4mGPRjk5boDnW0uvlpAgqs5Jg3quKLfGKhgcZzlBh-w_NInSOY4el2-CiPHYFBu3uivq_OLF0p2jMpU3rVPVUMhtmNl5w9DSzSsNs2DyprLVMmCc1pUazGOXwYCXcKiF1AXt88DoZgtPuewT52NGPmlwwj5jvyHC14HQaDaTI4FyEOVj_g,,&l10n=ru&cts=1496085580302&mc=4.349648912578752',
    'shop_select_view' => 'list',
    'auth_token' => 'fd94aa497d8e096145a4ebb79a92914',
    '_gid' => 'GA1.2.382424571.1496013755',
    'shop_cart' => '60e7b037920ab00a45c9c34e217e9b4d',
    'landing' => '/',
    'remember' => '1',
    'back_url' => '/webasyst/logs/',
    '_csrf' => '587e68d180b329.48597697',
    'PHPSESSID' => '93b7cb50250e11ec911b07c33bfa7782',
    '__utmc' => '133969305',
    )

    Params

    array()

    • +1

      Попробуйте увеличить в 2-5 раз значения параметров post_max_size и max_input_vars в конфигурации PHP. Перезапустите веб-сервер после этого, если этого требует ваша серверная конфигурация. Возможно, сервер "видит" не все данные, которые вы ему отправляете, и потому ругается ошибкой.

    • +1
      Сергей forcom.ru Сергей forcom.ru 30 мая 2017 02:17 #

      С кроном оказалось тоже не все гладко.

      при выполнение команды:

      php /var/www/manager/data/www/forcom.ru/cli.php shop yandexmarketPluginExport 9

      файл создается но, во все ссылки на товары и на изображения добавляется кусок: "var/www/manager/data/www/forcom.ru"

      и получается нерабочая ссылка на страницу товара вида:

      https://www.forcom.ru/var/www/manager/data/www/forcom.ru/product/UHU45585/?utm_source=torgmail&utm_medium=price&utm_campaign=Torg.Mail.ru

      вместо:

      https://www.forcom.ru/product/UHU45585/?utm_source=torgmail&utm_medium=price&utm_campaign=Torg.Mail.ru

      Прошу помощи в настройке плагина, чтобы хоть как то экспортировать прайс... Всегда пользовался ручным экспортом, проблем никогда не было. Попытка выгрузки по крону тоже привела к вышеописанной проблеме.

      • +2

        Об этой ошибке известно, скоро исправим.

        О разных ошибках лучше сообщать в отдельных темах в хабе поддержки. Так их удобнее обсуждать и обрабатывать (помечать как принятые/не принятые/исправленные).

      • +1
        Сергей forcom.ru Сергей forcom.ru 30 мая 2017 13:02 #

        спасибо за ответы, буду пробовать

      • +1
        Сергей forcom.ru Сергей forcom.ru 1 июля 2017 02:52 #

        Изменеие параметов post_max_size и max_input_vars, к сожалению, ничего не дает, ошибка при ручном экспорте продолжает возникать.
        Кроме импорта/экспорта в маркет, ошибка 403 (Магазин You don't have permission to access requested URL on this server. Please contact app developer.) возникает при сохранении в некоторых настройках:
        Настройки/Оформление заказа/Данные получателя заказа, на других этапах сохраняется нормально
        Настройки/Страны и регионы
        Настройки/Налоги

      • +1
        santa0 santa0 4 сентября 2017 20:29 #

        Такая же проблема — >>547 throw new waException('CSRF Protection', 403);

        В плагине Яндекс.Маркет настроено несколько профилей экспорта. На двух — ругается на 403 ошибку, а на остальных профилях — все норм.


        Выкусил проверку в waSystem.class.php

        // Check CSRF protection token if current active app enabled it

        //if ($wa_app->getConfig()->getInfo('csrf') && waRequest::method() == 'post') {

        // if (waRequest::post('_csrf') != waRequest::cookie('_csrf')) {

        // throw new waException('CSRF Protection', 403);

        // }

        //}

        Все начало работать

      • +1
        santa0 santa0 6 сентября 2017 10:50 #

        Провели диагностику. Ответ техподдержки:

        Мы завершили работу по вашему заказу № 417873. У вас указано достаточно много условий доставки, что приводило к недостатку ресурсов сервера. Увеличили параметр php max_input_vars, добавив в файл .htaccess строку php_value max_input_vars 10000

        Проблема решена.

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите