Назад | Перейти на главную страницу

Отказано в фрейме "", потому что это нарушает следующую директиву политики безопасности контента: "frame-src *"

Я нашел много решений для различных ситуаций с «отказом от xyz» из-за настроек Content-Security-Policy.

Однако я не могу найти, что может быть не так, если '' получает отказ.

Буквальное сообщение об ошибке в браузере:

Refused to frame '' because it violates the following Content Security Policy directive: "frame-src *".

Это происходит только в Chrome. Загрузка страницы в Firefox или Internet Explorer работает нормально.

Я установил следующий CSP (это действительно одна строка. Я добавляю новые строки для удобства чтения):

default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval';
style-src 'self' 'unsafe-inline';
img-src 'self' data:;
frame-src 'self' *;
object-src 'none';
font-src 'self' data:;

Теперь я понял, что * означает «все». За что Chrome не проявляет ко мне любви?

Примечание: мы оценили избавление от 'unsafe-inline' и 'unsafe-eval' но мы не можем в данный момент. Если это может быть причиной моей проблемы, укажите, как это сделать. В противном случае я понимаю, что это проблема безопасности, и мы работаем над тем, чтобы избавиться от нее. А пока он здесь, чтобы остаться.

Настройка: веб-сервер - это Apache:

# rpm -q httpd
httpd-2.4.6-80.el7.centos.1.x86_64

edit1 Ошибка возникает при попытке открыть почтовую программу клиента с веб-сайта. Пользователь щелкает ссылку, и предполагается, что почтовая программа откроется.

Возможно, поэтому Chrome отображает пустую строку ('') как заблокированный контент.

Была именно такая проблема сегодня. Я решил это, используя

frame-src data:

Кстати. '*' - это только подстановочный знак для URL-адресов. data: 'unsafe-inline' и 'unsafe-eval' нужно добавлять отдельно.