Защита веб-приложений Tomcat - PullRequest
       5

Защита веб-приложений Tomcat

1 голос
/ 19 декабря 2011

Учитывая веб-приложение, управляемое базой данных (MySQL), полностью написанное на vanilla J2EE (без фреймворков и т. Д.), Которое не имеет попыток безопасности (кроме базовой системы входа в базу данных).Какие шаги вы должны предпринять, чтобы обезопасить его?

Любые ресурсы по этому поводу также будут полезны.(Я нашел OWASP).

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

Ваше требование очень абстрактно: вы уже упомянули OWASP , который заботится о безопасности веб-приложения в целом.Некоторые из наиболее распространенных атак на веб-приложения следующие:

  1. Межсайтовый скриптинг (XSS)
  2. SQL-инъекция
  3. Недостаточная безопасность транспортного уровня (без использования HTTPS)
  4. Взлом с использованием грубой силы ( без ограничений на количество попыток входа в систему , без использования captcha )
  5. Атака отказа в обслуживании.

Их много, но они наиболее распространены.OWASP решает большинство из них.Теперь, чтобы обезопасить свое веб-приложение от каждой из этих атак, просмотрите теоретическую часть (то же самое, что и в Google) и посмотрите, есть ли в OWASP какие-то обходные пути или нет, если нет, то для этого есть много открытого / свободного кода.Например, для использования капчи Google предоставляет бесплатный сервис капчи и аналогично.

1 голос
/ 19 декабря 2011

Кажется, это загруженный вопрос.

Платформа Spring Security - это первое, что приходит мне в голову, но, похоже, вы не склонны к использованию каких-либо платформ.

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

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

Некоторые другие вещи, которые следует учитывать:

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

б). Возможно, вы захотите посмотреть на какое-нибудь средство шифрования для хранения пароля пользователя.

с). Поскольку вы пишете приложение Java EE, вы, вероятно, захотите изучить принципы управления пользователями.

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

е). Обратите особое внимание на инъекции sql; если вы используете подготовленные операторы jdbc, это не сильно беспокоит.

е). Если вы обрабатываете транзакции по кредитным картам, вам нужно убедиться, что вы соответствуете PCI

* * 1 022 г). Остерегайтесь злых ботов, старайтесь по возможности ограничивать активность ботов. Обычно это можно сделать с помощью какой-либо утилиты для ввода капчи

ч). Если вы используете какие-либо сторонние инструменты / фреймворки, будьте уверены, что вы всегда получаете последние версии, чтобы избежать уязвимостей

Вот некоторые ресурсы, которые приходят на ум:

http://static.springsource.org/spring-security/site/

http://docs.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html

http://docs.oracle.com/javaee/5/tutorial/doc/bnbwk.html

Надеюсь, это поможет

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