7

При просмотре мне иногда выдаются предупреждения о страницах, на которых размещено вредоносное ПО, "которое может повредить мой компьютер". Я серьезно озадачен тем, почему в 2010 году браузеры по- прежнему имеют возможные эксплойты и могут быть взломаны.

Мой вопрос "Почему?». Я предполагаю, что это из-за быстрого развития, которое происходило в войнах браузеров, которые были недостаточно протестированы, но я не уверен. Конечно, WebKit исправил бы все проблемы в KHTML, или Gecko разобрался с недостатками в движке Netscape, а кодировщики IE разобрались по своей кодовой базе, чтобы устранить возможные недостатки?

(Отчасти связано: какой браузер является наиболее безопасным?(исследования и практически на основе).)

8 ответов8

11

Сложность, сложность, сложность.

Современный браузер поддерживает

  • Получение данных по нескольким протоколам (http, https, ftp, ...)
  • Рендеринг нескольких разных языков разметки (обычный HTML (в нескольких версиях), HTML, HTML с CSS ...)
  • Хранение данных и получение данных по запросу удаленных пользователей (куки)
  • Два (или больше!) Завершение полной среды программирования для запуска кода, поставляемого извне (javascript, java, возможно, flash ...)
  • Какая-то внутренняя база опций
  • (украдено из проницательного ответа broam, поэтому проголосуйте за него) поддерживает архитектуру плагинов, которая позволяет стороннему коду получить доступ к внутренним компонентам браузера

ожидается, что он будет быстрым, будет иметь умное кэширование, чтобы сделать его быстрее, и иметь выразительный и мощный интерфейс.

Там очень много всего, и это большие, сложные части программного обеспечения.

8

Один вектор, о котором люди не упомянули: плагины. Браузер может быть безопасным, но плагин может иметь широкие дыры в нем ... и с такими вездесущими плагинами, как Flash ... эксплойты, приятель.

3

Частично это тот факт, что некоторые обновления запускаются быстрее, чем должны быть. Но одним из преобладающих фактов является сообщение в блоге, которое Джефф недавно разместил здесь, когда работал администратором, все может случиться. Кроме того, поскольку каждый компьютер работает по-разному, эксплойт есть не у самого браузера. Иногда это сторонний плагин, такой как Flash.

3

Частично проблема заключается в том, что производительность браузеров (таких как текстовые процессоры и программы CAD) сильно зависит от данных, и, поскольку может быть (в значительной степени) бесконечное разнообразие данных, разработчики не смогут протестировать каждую комбинацию. чтобы увидеть, если это дает нежелательные результаты.

Другой аспект заключается в том, что для обеспечения интерактивности, которую пользователи и (что более важно) владельцы веб-сайтов хотят, чтобы браузеры выполняли код. Это еще одно слабое место.

3

Здесь много ответов, все они касаются разных причин, но основной ответ - «потому что там деньги».

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

2

Ответ dmckee - правильный, но все это можно суммировать с помощью одной вещи: сложное взаимодействие с неожиданными данными. Ваш браузер должен запускать код / разметку, плагины и т.д., Обрабатывать пользовательский ввод, плагины, которые запускают код и т.д. Невозможно протестировать все взаимодействия, потому что вам потребуется весь Интернет - настоящий и будущий - в ваш набор тестов.

Когда вы тестируете программное обеспечение, вы проверяете диапазон нормальных и ненормальных входов, а затем вы ... готовы к бета-тестированию. Так что это все часть бесконечной бета-фазы :)

Кроме того, как говорит Крис, именно на этом деньги. Это означает, что браузеры - очень интересная цель.

1

Факт в том, что у каждого программного обеспечения есть свои слабые стороны. Ни один из них не содержит ошибок. И исправляя ошибки, вводятся новые.

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

0

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

Кроме того, безопасность и удобство использования часто находятся на противоположных сторонах компромисса, и функции продают больше программного обеспечения, чем отсутствие проблем безопасности.

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