Сервлет Параметр Шифрование - PullRequest
1 голос
/ 20 августа 2010

Все еще изучаю веб-приложения JSP здесь.

Я уже некоторое время занимаюсь этим в своем веб-приложении, но мне хотелось бы узнать более безопасное решение.

Представьте себе таблицу, которая отображаетопределенная информация о книге.Когда пользователь щелкает одну из строк в таблице, я в основном отправляю BookID вместе с URL.

Пример URL.http://locathost:8080/myapp/editbook.htm?bookID=3

в моем сервлете.

String strBookID = request.getParameter("bookID");

Я думаю, что это немного слабовато, есть ли способ, которым я мог бы предоставить более безопасный способ, чем этот.Хакеру гораздо проще отредактировать URL, если я отправлю BookID вместе с URL.

Не могли бы вы поделиться ссылкой на то, как это сделать как на стороне клиента, так и на стороне сервера?

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

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

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

Как минимум, вы должны сделать следующее -

  1. Убедитесь, что bookID на самом деле является целым числом и находится в ожидаемом диапазоне.
  2. Убедитесь, что вы связываете bookid в параметризованном SQL-запросе - это предотвращает SQL-инъекцию.
  3. Показывает страницу «Книга не найдена», если книгу не удается найти

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

Для защищенной библиотеки вам придется сделать гораздо больше.

  1. Убедитесь, что URL-адрес защищен в web.xml, поэтому только аутентифицированные и авторизованные пользователи могут получить доступ к URL-адресу
  2. Убедитесь, что текущий пользователь имеет доступ к bookID.Вы можете сохранить список книг, доступных пользователю, в объекте сеанса.
  3. Если у пользователя нет доступа, верните страницу с ошибкой 403.

Существует несколько других стратегий.защищать URL-адреса;некоторые используют токены, чтобы гарантировать, что URL не был обработан.Другие не отправляют bookID клиенту, а вместо этого используют номер от {1 до n}, где только сервер знает, что 1 соответствует книге A и так далее.Но идея состоит в том, чтобы гарантировать, что пользователь не получит доступ к книге, к которой у него нет прав доступа.

Если вы используете Spring, я настоятельно рекомендую Spring Security.В противном случае посмотрите в JAAS.

0 голосов
/ 20 августа 2010

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

Вам нужны авторизация и авторизация.

Как использовать аутентификацию с вашим web.xml

Определение требований безопасности для веб-приложений

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