Х Ланг имеет безопасность? - PullRequest
       34

Х Ланг имеет безопасность?

3 голосов
/ 18 февраля 2010

Я часто слышу этот вопрос при обсуждении с Java-разработчиком. Они (Java-разработчики) всегда спрашивают, есть ли безопасность у вашего выбора, и я не знаю, что на это ответить. Может кто-нибудь сказать мне, что означает безопасность Java?

Ответы [ 8 ]

4 голосов
/ 18 февраля 2010

Быстро: в Java вы можете столкнуться с различным типом «безопасности» (давая этому слову более широкое толкование).

  • Безопасность на уровне JVM (т.е. между двумя приложениями в одной JVM)
  • Безопасность на уровне контейнера (между двумя войнами, развернутыми на одном сервере приложений, и возможностью контейнера блокировать вызовы от неавторизованного клиента)
  • Безопасность на уровне приложений (это, скорее, системы аутентификации и авторизации, которые в целом предполагают использование фреймворков)

Но я не думаю, что вопрос «Язык X имеет безопасность» имеет какой-либо смысл без какого-либо дополнительного контекста.

3 голосов
/ 18 февраля 2010

Ну, как указал ccheneson, они могут означать много вещей:

  • API для защищенной связи (криптография, шифрование данных для передачи по сети, цифровые контрольные суммы)
  • безопасность внутри языка, такая как защита от ошибок программиста, таких как переполнение буфера
  • безопасность в ВМ, например, модель песочницы для запуска кода с ограниченными привилегиями

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

3 голосов
/ 18 февраля 2010

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

Дополнительно есть песочница для Applets и Webstart-приложений, предотвращающая владельцев сайтовдоступ к личным данным или контроль над вашим рабочим столом.

2 голосов
/ 18 февраля 2010

Скажите вашим Java-разработчикам, что языки «не имеют безопасности». Платформа (библиотеки и фреймворки) может предлагать API, которые могут использоваться для повышения безопасности (или использоваться неправильно или использоваться для создания ненужных сложных вещей, что всегда снижает безопасность).

Приложения и способ их развертывания и работы могут быть безопасными или нет, независимо от того, какой язык или платформа используется. Безопасность - это качественный атрибут, такой же, как производительность или ремонтопригодность. Языки программирования являются второстепенным аспектом этого; Платформа API - это немного больший аспект, но не различие между большинством основных платформ.

1 голос
/ 18 февраля 2010

Я подозреваю, что Java-разработчики, с которыми вы общаетесь, в первую очередь думают о таких вещах, как автоматическая проверка границ массива и строк - чего нет у низкоуровневых языков, таких как C и ассемблер, и которые приводят к очень распространенным ошибкам программирования, вызывающим чрезвычайно серьезные проблемы.дыры в безопасности.

Это правда, что дизайн Java практически полностью предотвращает такого рода ошибки, потому что он автоматически проверяет границы массива.Но это не означает, что «у Java есть безопасность» - многие другие типы атак, такие как межсайтовый скриптинг и SQL-инъекция, все еще возможны, и многие плохо написанные Java-приложения уязвимы для них.

И этотакже верно для почти всех других современных языков высокого уровня.«Защищенность» Java от переполнения буфера была важным достижением (и в маркетинге это сильно подчеркивалось), когда она была представлена ​​в середине 1990-х годов, а C ++ - ее основной конкурент.В настоящее время, когда широко используются многие другие языки, это уже не так уж важно.

0 голосов
/ 19 февраля 2010

это о языковой безопасности? http://en.wikipedia.org/wiki/Language-based_system

0 голосов
/ 18 февраля 2010

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

Это просто «Безопасность платформы», есть и другие темы, связанные с безопасностью.
См. technotes , в частности раздел «Общая безопасность» ( Обзор безопасности Java и Архитектура безопасности )

0 голосов
/ 18 февраля 2010

Они, вероятно, относятся к Java SE Security . Так что, я думаю, под «иметь безопасность» они подразумевают набор API для повышения безопасности при обмене данными, ...

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