Поддержка Проблемы и решения Не загружается скрипт: because it violates the following Content Security Policy

  • Решено mariako1

    (@mariako1)


    Всем привет!

    Не загружается скрипт на сайте по адресу http://plastic-beauty.ru/plastic/lico/lifting-brovej-i-lba.html

    На том месте, где должна быть реклама (в начале статьи сразу после заголовка), к-ую должен выводить скрипт, видим просто «загрузка…».

    Если посмотреть в консоли Хрома ошибки, то выдает следующее:

    Refused to load the script 'http://td.plastic-beauty.ru/output/index/39' because it violates the following Content 
    
    Security Policy directive: "script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: http://*.googleapis.com 
    
    https://*.googleapis.com https://google.com http://google.com https://*.google.com http://*.google.com 
    
    http://*.googlesyndication.com https://*.googlesyndication.com http://*.doubleclick.net https://*.doubleclick.net 
    
    http://*.gstatic.com https://*.gstatic.com http://*.yandex.ru https://*.yandex.ru https://yastatic.net 
    
    http://yastatic.net http://*.yandex.net https://*.yandex.net http://yandex.st https://yandex.st http://youtube.com 
    
    https://youtube.com https://*.youtube.com http://*.youtube.com https://*.googlevideo.com http://*.googlevideo.com 
    
    https://googlevideo.com http://googlevideo.com http://*.s4block.com http://*.s2block.com http://*.s1block.com 
    
    http://yandexadexchange.net https://yandexadexchange.net http://counter.rambler.ru https://counter.rambler.ru 
    
    http://www.google-analytics.com https://www.google-analytics.com http://vk.com https://vk.com http://*.dutrmedi.ru 
    
    http://*.dumedia.ru http://*.admitad.com   http://*.mail.ru http://*.adriver.ru  http://neoplasmo.ru 
    
    https://neoplasmo.ru http://cdn.jsdelivr.net"

    Можете подсказать, как можно поправить? Может быть можно куда-то просто внести адрес сайта скрипта, в список исключений?

    Буду благодарна за помощь!

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Модератор Yui

    (@fierevere)

    ゆい

    посмотрите .htaccess
    скорее всего заголовок прописан там
    Content-Security-Policy: default-src 'self';style-src 'unsafe-inline' *;frame-src 'self' https://st.yandexadexchange.net http://widget.admitad.com http://neoplasmo.ru https://neoplasmo.ru http://*.mail.ru http://*.adriver.ru https://3ladies.ru http://3ladies.ru http://counter.rambler.ru https://counter.rambler.ru http://www.google-analytics.com https://www.google-analytics.com http://vk.com https://vk.com http://yandexadexchange.net https://yandexadexchange.net http://youtube.com https://youtube.com https://*.youtube.com http://*.youtube.com https://*.googlevideo.com http://*.googlevideo.com https://googlevideo.com http://googlevideo.com http://*.googleapis.com https://*.googleapis.com https://google.com http://google.com https://*.google.com http://*.google.com http://*.googlesyndication.com https://*.googlesyndication.com http://*.doubleclick.net https://*.doubleclick.net http://*.gstatic.com https://*.gstatic.com http://*.yandex.ru https://*.yandex.ru https://yastatic.net http://yastatic.net http://*.yandex.net https://*.yandex.net http://yandex.st https://yandex.st;img-src * data:;media-src *;font-src * data:;script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: http://*.googleapis.com https://*.googleapis.com https://google.com http://google.com https://*.google.com http://*.google.com http://*.googlesyndication.com https://*.googlesyndication.com http://*.doubleclick.net https://*.doubleclick.net http://*.gstatic.com https://*.gstatic.com http://*.yandex.ru https://*.yandex.ru https://yastatic.net http://yastatic.net http://*.yandex.net https://*.yandex.net http://yandex.st https://yandex.st http://youtube.com https://youtube.com https://*.youtube.com http://*.youtube.com https://*.googlevideo.com http://*.googlevideo.com https://googlevideo.com http://googlevideo.com http://*.s4block.com http://*.s2block.com http://*.s1block.com http://yandexadexchange.net https://yandexadexchange.net http://counter.rambler.ru https://counter.rambler.ru http://www.google-analytics.com https://www.google-analytics.com http://vk.com https://vk.com http://*.dutrmedi.ru http://*.dumedia.ru http://*.admitad.com http://*.mail.ru http://*.adriver.ru http://neoplasmo.ru https://neoplasmo.ru http://cdn.jsdelivr.net; connect-src *; object-src *

    вам нужно туда добавить
    http://*.plastic-beauty.ru http://cdn.sendpulse.com

    • Ответ изменён 1 год, 1 месяц назад пользователем Yui.

    спасибо, посмотрела, но в .htaccess такого кода нет к сожалению..

    Модератор Yui

    (@fierevere)

    ゆい

    https://ru.wordpress.org/plugins/search/Content-Security-Policy/
    а плагинов типа таких нет ?

    спасибо, посмотрела, но в .htaccess такого кода нет к сожалению..

    слова вам нужно туда добавить совсем ни о чем не говорят??

    Модератор Yui

    (@fierevere)

    ゆい

    слова вам нужно туда добавить совсем ни о чем не говорят??

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

    наиболее вероятные места
    1. htaccess
    2. плагин какой-то
    3. политика хостера в правилах nginx, но это навряд ли, слишком большой список и включены специфичные достаточно домены

    • Ответ изменён 1 год, 1 месяц назад пользователем Yui.

    https://ru.wordpress.org/plugins/search/Content-Security-Policy/
    а плагинов типа таких нет ?

    Конкретно таких нет. Есть Really Simple CAPTCHA, отключила его, но ничего не изменилось.

    Еще есть плагин WP Rocket. Его отключение тоже ничего не дало.

    Зато в корне сайта нашелся файл «csp.php»
    Код файла на всякий случай прикладываю. Но в нем тоже нет такого кода со списком сайтов. Что это за файл и кто его писал — не знаю, т.к. сайт раньше был у другого владельца.

    <?php
    function spam($data)
    {
    if (preg_match('@projekktor|jquery@smi',$data)) {return 1;}
    
    return 0;
    }
    
    header("HTTP/1.0 204 No Response");
    
    $data = file_get_contents('php://input');
    if ($data = json_decode($data))
    {
    $data = json_encode($data)."\n\r";
    if (spam($data)==0) {
    
    $spsline='';
    $spsline=preg_replace('@.*?"blocked-uri":"(.*?)".*@smi',"$1",$data);
    
    $spsline=str_replace('\/','/',$spsline);
    
    $data=str_replace('document-uri','На странице',$data);
    $data=str_replace('referrer','Реффер',$data);
    $data=str_replace('violated-directive','Сработало правило',$data);
    $data=str_replace('effective-directive','Сработала директива',$data);
    $data=str_replace('original-policy','Все правила',$data);
    $data=str_replace('blocked-uri','Заблокирован урл',$data);
    $data=str_replace('source-file','Исходник',$data);
    $data=str_replace('line-number','Номер строки',$data);
    $data=str_replace('column-number','Номер столбца',$data);
    $data=str_replace('status-code','Ответ сервера',$data);
    
    $out=json_decode($data,1);
    $tofile='';
    foreach ($out['csp-report'] as $n=>$k)
    {
    $tofile.=$n.': '.$k."\n";
    }
    
    file_put_contents($_SERVER['DOCUMENT_ROOT'].'/csp/'.date("H").'-csp-report.txt', ">>>> Заблокирован урл: ".$spsline."\n\n".$tofile."\n****************************************************************************\n", FILE_APPEND | LOCK_EX);
    
    }
    }
    ?>

    Также есть папка csp в корне сайта, и в ней три файла с названием типа 09-csp-report.txt — похоже, отчеты о заблокированных сайтах и скриптах. Но и там нету нужного кода..

    Где бы его найти..

    • Ответ изменён 1 год, 1 месяц назад пользователем mariako1.
    Модератор Yui

    (@fierevere)

    ゆい

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

    Спасибо) Нужный код оказался в файле index.php.

    Добавила туда код

    http://*.plastic-beauty.ru http://cdn.sendpulse.com

    …Но почему-то скрипт так и не грузится, ошибка та же. Кеш сайта сбрасывала, страницу несколько раз обновляла ctrl+F5

    Получается, этих действий было недостаточно?

    Модератор Yui

    (@fierevere)

    ゆい

    script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:

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

    И да, отдельный привет тому «гению», который впихнул это в index.php

    Действительно, убрала весь этот код, и все заработало)

    Большое вам спасибо!!

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Не загружается скрипт: because it violates the following Content Security Policy» закрыта для новых ответов.