Как реализовать несколько Content-Security-Policies и заголовков?

У меня есть приложение, связанное с электронной почтой, в котором я хочу заблокировать оповещения в JavaScript через вложение. Например, я реализовал следующий заголовок CSP:

Header Set Content-Security-Policy "script-src http://192.168.0.1/trusted/ 'unsafe-inline' 'unsafe-eval';" 

В соответствии с этой политикой оповещения из внешних источников блокируются, но код типа <script>alert(123)</script>' выполняется, если я отправляю HTML-документ в виде вложения через приложение. Я не могу изменить код и переместить весь код JavaScript с HTML-страницы в другой файл '.js'. Это будет очень трудоемкий процесс. Есть ли способ решить эту проблему? Если я реализую несколько заголовков, это приводит к конфликту.

Также я думал об использовании псевдонимов, чтобы разрешить доверенный код с другого IP-адреса, например 192.168.0.2/trusted/, но поможет ли это?


person hshantanu    schedule 06.04.2015    source источник


Ответы (1)


Вы можете отобразить HTML из вложений в изолированном iframe. Он имеет следующие преимущества:

  • сама песочница снижает влияние любого вредоносного кода во вложении,
  • вы можете установить отдельный заголовок CSP для URL-адреса iframe, и это не повлияет на внешний HTML, где вам нужно разрешить встроенный код.
person kravietz    schedule 07.04.2015
comment
Большое спасибо. Буду тестировать и пытаться реализовать «песочницу iframe». - person hshantanu; 08.04.2015