2015-05-29 5 views
1

Когда я удаляю unsafe-inline от script-src на своих заголовках CSP, я получаю несколько ошибок в Modernizr 2.8.3 и ошибку в JQuery 2.1.3. Это странно, потому что я получаю эту ошибку только на одном из моих сайтов, хотя я использую те же библиотеки для других, не имеющих проблемы с CSP. ПримерStyle-src CSP Ошибки с JQuery и Modernizr

Ошибка:

Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' *.github.com *.bootstrapcdn.com *.jsdelivr.net *.twitter.com *.googleapis.com *.google.com dmjwor2go9n1u.cloudfront.net". Either the 'unsafe-inline' keyword, a hash ('sha256-CwE3Bg0VYQOIdNAkbB_Btdkhul49qZuwgNCMPgNY5zw='), or a nonce ('nonce-...') is required to enable inline execution. 

У меня есть догадка что-то делать с частью сценария:

style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join(''); 

Когда я нажимаю хромированную консоль, чтобы связать меня с I ошибки получить размещены здесь:

<style id="s',v,'">',e,"</style>"].join(""),u.id=v,(l?u:d).innerHTML+=a,d.appendChild(u)

Довольно потерянным почему это происходит и не может найти никакого реального направления в моем поиске в Google. Могут ли эти ошибки загореться, как я использую эти библиотеки? Любая помощь или проницательность оценены.

ответ

1

Итак, это отстой.

Вы не делаете ничего плохого, просто для того, чтобы Modernizr смог проверить, доступны ли стили, он должен вводить стили в страницу. Он делает это с помощью фрагмента, который вы включили. Это заблокировано CSP, потому что вы не позволяете вещам добавлять какие-либо css через javascript, что это делает.

Я работаю над попыткой выяснить, как это работает (или, по крайней мере, не сбой) в Modernizr. В то же время вы можете добавить sha файла Modernizr, что ошибка включает внутри вашего скрипта-src, и вы должны быть в порядке.

+1

https://github.com/Modernizr/Modernizr/issues/1262 – Noyo