5

Могу ли я автоматически изменять / удалять / добавлять определенные заголовки HTTP в соответствии с такими критериями, как URL (по регулярному выражению) и, возможно, реферер?

РЕДАКТИРОВАТЬ: В качестве альтернативы, какой локальный прокси будет делать это, предпочтительно бесплатно?

Меня в первую очередь интересует Chrome, но этот вопрос касается всех браузеров. Если для Chrome ничего не доступно, я могу прибегнуть к любому браузеру, в котором есть решение.

У меня есть несколько сайтов, которые я всегда держу открытыми. Я решил объединить их в одну страницу, поместив каждый из них в iframe. По крайней мере одна из страниц, которые я использую, не нравится этой идее; по-видимому, он посылает X-FRAME-OPTIONS: SAMEORIGIN чтобы защитить меня от черных шляп. Я ценю этот жест, но я хотел бы использовать данные, которые они мне посылают, так, чтобы это было наиболее логично для меня.

Поэтому я решил, что самый простой способ обойти это - обнаружить, что моя страница является реферером (я мог бы при необходимости вставить фиктивную переменную в строку запроса iframe) и убрать из ответа X-FRAME-OPTIONS, чтобы Chrome не осознавал страница хотела отключить междоменное встраивание.

Я пытался найти в Chrome Web Store и Google, но ничего не смог найти. Конечно, есть что-то? Я знаю, что есть живые HTTP-заголовки в Firefox и аналогичные в Chrome, но для этого требуется, чтобы я редактировал заголовки вручную. Эта задача должна быть автоматизирована.

4 ответа4

3

Я знаю, что вы предпочитаете Chrome, но его архитектура усложняет такие вещи, потому что они пытаются многое изолировать.

Быстрый плагин Firefox для поиска найден

Что касается прокси, возможно, Fiddler сработает.

Я не проверял ни один из них лично, но оба, похоже, могут делать то, что вы хотите.

2

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


Кальмар

В их вики-статье ContentAdaptation перечислены различные методы изменения потока. Самое простое в конфигурационном файле squid.conf , с request_header_replace и reply_header_replace. Если вы хотите полностью удалить заголовки, вы можете использовать request_header_access и reply_header_access.

В вашем случае вы, вероятно, хотите, reply_header_access X-Frame-Options deny all , что должно удалить заголовок. Вы также можете изменить его так, чтобы он отвечал чем-либо другим, кроме SAMEORIGIN или DENY , что позволит сделать это в соответствии с этим SO-ответом (но это особый случай, и, очевидно, недокументированный, поэтому лучше просто удалить его).

Помните, что вам нужно запустить Squid с аргументом / опцией --enable-http-violations чтобы использовать эти опции.

Вы также можете отключить кэширование Squid.


Polipo

Переменная censoredHeaders принимает список заголовков HTTP для блокировки. Вы можете добавить From, X-Frame-Options в этот список. Смотрите здесь инструкции по настройке Polipo.

Нет четкого способа отключить кэширование в Polipo - очевидно, он не использует буфер в памяти, а всегда сохраняет на диск. Однако вы можете заставить его всегда запрашивать новую страницу, установив для maxExpiresAge , maxAge и maxNoModifiedAge значение 0 (возможно, 1, если 0 не работает). Смотрите здесь.

1

Для Chrome существует: Игнорировать заголовки X-Frame. Хорошо работает для меня!

Я использую https://addons.mozilla.org/en-US/firefox/addon/modify-headers/ в Firefox, когда мне нужно то же самое - требуется минимальная конфигурация.

0

Как насчет изменения заголовков для Chrome https://chrome.google.com/webstore/detail/modify-headers-for-google/innpjfdalfhpcoinfnehdnbkglpmogdi

Это хорошо, например, для добавления заголовков отладки для пользователей кеширующей платформы Akamai.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .