Мои скрипты встроены некоторыми операторами мобильной связи. Как с этим бороться?
Некоторые страницы неверно получены на мобильных телефонах (многие из них во Франции): JavaScript script элементы встроены.
Вместо
<script src="static/jquery-2.1.3.min.js"></script>
У меня
<script> ... content of the whole jQuery script ... </script>
В качестве заголовка политики безопасности контента я запрещаю встроенные скрипты, современные браузеры блокируют выполнение script.
Есть ли способ справиться с этим, кроме использования HTTPS? Может быть, какой-то способ указать страницу нельзя переписывать третьим лицам?
Примечания:
- заголовок CSP недостаточно для того, чтобы сторонняя команда выполняла преобразование
- заголовок
Cache-Control:no-transform
также игнорируется
- любой ответ, связанный с добавлением встроенного script, не является ответом, поскольку целью является удаление всех встроенных скриптов для обеспечения безопасности
- проблема не связана с введением дополнительных скриптов (которые не нарушали бы мой сайт, так как браузеру было поручено не выполнять их), но и вложение существующих скриптов li >
- проблема не специфична для любого оператора: я ищу (разумно) общее решение
Ответы
Ответ 1
Не самое элегантное решение, но вы всегда можете попытаться обмануть ISP, считая, что это не ресурс js, изменив расширение файла (что, вероятно, вызовет изменение типа mime в отправляемом вами заголовке).
Подайте файл как jquery.java
или другое расширение. Опять же, не самое изящное решение, но, как говорит тадман в комментариях, иногда нелегко бороться с рывками.
Ответ 2
Вы просили решения, которые избегают HTTPS, но это то, что вы должны делать. Используйте HTTPS для всего вашего контента и прекратите использовать эти "полезные" MITMs.
Получите бесплатный сертификат TLS (начиная с сентября 2015 года).
В настоящее время принятое решение просто играет в игру с кошкой и мышью. Если вам нужна безопасность (которую вы должны обслуживать заголовок CSP), вам необходимо остановить эту атаку, а не пытаться скрыть ее.