Руководство для программиста на Java 75 рекомендаций по написанию надежных и защищенных программ | Лонг Фрэд, Мохиндра Дхрув, Сикорд Роберт С.
updated 8:00 AM, Apr 1, 2023 UTC

Руководство для программиста на Java: 75 рекомендаций по написанию надежных и защищенных программ - Лонг Фрэд, Мохиндра Дхрув, Сикорд Роберт С.

Руководство для программиста на Java: 75 рекомендаций по написанию надежных и защищенных программ - Лонг Фрэд, Мохиндра Дхрув, Сикорд Роберт С.

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

Программирующие на любом языке должны придерживаться определенного ряда реко­мендаций, касающихся управления структурами их программ, а самое главное — того, что указано в определении языка программирования. И это в равной степени относится к Java. Для разработки надежных и безопасных программ на Java программистам требуется допол­нительная помощь, помимо того, что указано в спецификации языка программирования Java (JLS) [JLS 2013]. В состав Java входят языковые средства и прикладные программные интер­фейсы (API), которые можно легко употребить неправильно, и поэтому требуются рекомен­дации, помогающие обойти скрытые препятствия на пути к созданию надежных программ на Java.

Для того чтобы программа была надежной, она должна работать во всех случаях и вопре­ки любым данным, которые могут быть введены. Любая нетривиальная программа не может избежать совершенно неожиданно возникающей ситуации в ходе ее выполнения или при вво­де данных, в результате чего возникают ошибки. Когда же возникают ошибки, очень важно ограничить их воздействие на программу, и для этого лучше всего локализовать ошибку и обработать ее как можно скорее. Стремясь предусмотреть неожиданные ситуации, которые могут возникнуть при вводе данных или в ходе выполнения программы, одни программис­ты могут выгодно воспользоваться опытом других, приняв на вооружение безопасный стиль программирования.

Эта книга посвящена вопросам программирования на платформе Java SE 7 и содержит рекомендации для написания безопасного кода с помощью прикладного программного ин­терфейса API для версии Java SE 7. В спецификации на язык программирования Java в версии Java SE 7 [JLS 2013] регламентируется поведение этого языка, и поэтому она послужила основ­ным источником для разработки рекомендаций, представленных в данной книге.

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

Для того чтобы писать надежные и безопасные программы, недостаточно уделить вни­мание вопросам одного только языка программирования. Иногда вопросы проектирования, возникающие при обращении к прикладным программным интерфейсам API языка Java, при­водят к тому, что эти интерфейсы становятся не рекомендуемые к дальнейшему применению. А порой интерфейсы API или документация на них интерпретируются программистами не­верно. На подобные неясности в интерфейсах API указывается в представленных здесь реко­мендациях, где обращается внимание на правильное их применение. Эти рекомендации до­полняются характерными образцами ошибочного проектирования или неверно выбранного стиля программирования.

Ядро языка Java и его расширения в виде прикладных интерфейсов API, а также виртуаль­ная машина JVM предоставляют ряд средств для обеспечения безопасности, в том числе диспет­чер защиты и контроллер доступа, шифрование, автоматическое управление памятью, строгий контроль типов и проверку достоверности байт-кода. Эти средства обеспечивают достаточную безопасность для большинства приложений, но при условии, что они правильно используются, что очень важно. В представленных здесь рекомендациях указываются скрытые препятствия и предупреждаются опасности, связанные с архитектурой системы безопасности, а также де­лается акцент на правильную ее реализацию. Придерживаясь этих рекомендаций, можно убе­речься от многих программных ошибок, используемых для нарушения защиты с целью отказать в обслуживании, организовать утечку информации или намеренно превысить полномочия.

Руководство для программиста на Java: 75 рекомендаций по написанию надежных и защищенных программ - Лонг Фрэд, Мохиндра Дхрув, Сикорд Роберт С. | ООО «И.Д. Вильямс» | 2014 год  | ISBN 978-5-8459-1897-0 (рус.),  ISBN 978-0-321-93315-7 (англ.)

Смотрите также другие материалы:

JavaScript. Оптимизация производительности - Николас Закас

Java. Новое поколение разработки - Эванс Б., Вербург М.

jQuery. Подробное руководство по продвинутому JavaScript. Второе издание. Бер Бибо, Иегуда Кац.