Невозможно создать https://xxx-my.sharepoint.com, поскольку предок нарушает
Я получил эту ошибку, когда попытался (i) создать фрейм Sharepoint.com:Refused to frame 'https://xxx-my.sharepoint.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com teams.microsoftonline.cn *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com securebroker.sharepointonline.com".
Я пытался поместить весь этот CSP в предки фрейма, но всегда получал одну и ту же ошибку. Я написал заголовки в apache2
Header always set Content-Security-Policy "default-src 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com teams.microsoftonline.cn *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com securebroker.sharepointonline.com;
frame-src 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com teams.microsoftonline.cn *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com securebroker.sharepointonline.com;
frame-ancestors 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com teams.microsoftonline.cn *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com securebroker.sharepointonline.com;
script-src 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com teams.microsoftonline.cn *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com securebroker.sharepointonline.com"
(Между src нет пробелов, это просто для ясности). Я также пытался добавить заголовки X-Frames-Options, x-xss-protection, access-control-allow-origin, access-control-allow-headers. Ничего не меняется
Мой iframe выглядит так:sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-modals" src="https://xxx.sharepoint.com/xxx/xxx/_layouts/15/Doc.aspx?sourcedoc={xxx}&action=edit&AllowTyping=True&wdDownloadButton=True&wdInConfigurator=True"
(Я бы открыл файл, например Excel или Word, в режиме редактирования, с действием =embedview, это работает, но я хочу действие = редактировать) Как я могу решить эту проблему?
1 ответ
Сообщение об ошибке означает, что вы пытаетесь создать фрейм для страницы, на которой конкретно указано, каким другим сайтам разрешено ее фреймировать. Если вашего имени хоста нет в этом списке, вы ничего не можете сделать, кроме изменения заголовков путем проксирования службы ofc. В некоторых случаях сервисы, ограничивающие фреймирование, допускают настройку, поэтому вам следует проверить, возможно ли внести ваш сайт в белый список для его фреймирования.