Почему это нарушение CSP? block-uri = self, когда 'self' явно разрешено

Я не могу понять приведенный ниже отчет о нарушении CSP (отправленный FireFox 44.0.2 / Ubuntu). Что на самом деле здесь блокируется и почему? Следует отметить, что не имеет значения, пишу ли я 'self' или (как автоматически переводится в отчете) https://www.example.com в заголовок CSP. Кроме того, я не знаю, чего не хватает на отображаемой странице. Так что я могу сделать против него? (Очевидно, мне не следует добавлять отчеты на мой живой сайт, если каждая страница вызывает поддельный отчет о нарушении)

{
    "csp-report":{
        "blocked-uri":"self",
        "document-uri":"https://www.example.com/foo/bar/baz.html",
        "original-policy":"report-uri https://reportserver.example.com/ContentSecurityPolicy-report.php; 
            default-src https://www.example.com; 
            style-src https://example.com https://www.example.com https://fonts.googleapis.com; 
            script-src https://www.example.com https://code.jquery.com https://ajax.googleapis.com; 
            font-src https://fonts.gstatic.com",
        "referrer":"https://www.example.com/foo/bar/wtf.html",
        "source-file":"https://www.example.com/foo/bar/baz.html",
        "violated-directive":"style-src https://example.com https://www.example.com https://fonts.googleapis.com"
    }
}

person Hagen von Eitzen    schedule 19.02.2016    source источник
comment
Это развернуто где-нибудь, где я могу взглянуть? Я не могу придумать ничего, кроме ошибки в firefox, основываясь на вашем описании.   -  person oreoshake    schedule 19.02.2016
comment
@oreoshake Вы можете увидеть это (извне в режиме только отчета) на https://www.redeker.de/. Между тем я несколько подозреваю, что то, что заблокировано, может быть скорее стилем 'unsafe-inline', т. е. style="...", добавленным к тегам, но это не видно в исходном коде html, потому что оно добавляется для каждого сценария позже (где сам сценарий разрешен для CSP). Но я был бы рад, если бы вы могли подтвердить это подозрение.   -  person Hagen von Eitzen    schedule 20.02.2016
comment
Да, unsafe-inline был необходим. Я часто нахожу консоль разработчика иногда более полезной, чем отчеты. В отчетах CSP есть много известных проблем, и отчеты о встроенном контенте — одна из них.   -  person oreoshake    schedule 21.02.2016
comment
@oreoshake Я полагаю, что под консолью разработчика вы имеете в виду консоль Chrome (которая, как я теперь обнаружил, очень полезна), потому что консоль в Firefox (которую я изначально использовал) оставила мне много догадок ...   -  person Hagen von Eitzen    schedule 22.02.2016


Ответы (1)


Установив для вашей политики:

default-src 'self'; style-src example.com www.example.com 'self' https://fonts.googleapis.com 'unsafe-inline'; script-src 'self' https://code.jquery.com https://ajax.googleapis.com; font-src https://fonts.gstatic.com 'self';

Я не вижу никаких нарушений. Я добавил «unsafe-inline» в стиль src и «self» в font-src.

person oreoshake    schedule 21.02.2016
comment
У меня были проблемы со встроенными стилями и встроенным javascript, пока я не добавил 'unsafe-inline' к этим отдельным политикам или к политике default-src. Когда вы получаете "blocked-uri": "self", это указывает на то, что есть что-то встроенное, что является проблемой. - person Christopher Schultz; 01.07.2017