Мои скрипты встроены некоторыми операторами мобильной связи. Как с этим бороться?

Некоторые страницы неверно получены на мобильных телефонах (многие из них во Франции): 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), вам необходимо остановить эту атаку, а не пытаться скрыть ее.