Способы повышения безопасности веб-приложений на Java

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

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

Упрощенный механизм. Данный принцип является очень важным, его часто называют Keep It Simple, Stupid. Это связано с тем, что проектировщики, также как и разработчики, должны быть сосредоточены на решении основной задачи. Такой подход позволяет сократить количество непредусмотренных или непроверенных способов доступа к приложению, которыми может воспользоваться злоумышленник.

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

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

Использование атрибутов манифеста. Большое количество атрибутов манифеста позволяет гарантировать, что безопасность Java апплета или приложения не будет нарушена. Атрибут разрешений можно использовать для проверки уровня полномочий указанных в JNLP файле или в теге апплета. Элемент Codebase можно использовать для ограничения доменов, на которых могут располагаться JAR-файлы. Таким образом вы оградите приложение от постороннего Javascript кода.

Оставьте комментарий