Servlet Parameter Encryption

Still learning JSP Web Applications here.

I have been doing this for a while in my web application but I would like to know a more secured solution.

Imagine a Table that displays certain Book Information. When user clicks one of the rows in the table, I basically send the BookID together with the url.

Example URL. http://locathost:8080/myapp/editbook.htm?bookID=3

in my servlet.

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

I think this is a little weak, is there a way where I could provide a more secure way other than this. Its quite easier for hacker to edit the URL if I send the BookID together with the URL.

Can you share me some link on how to do this in both the Client Side and Server Side?

Thanks

1
задан Colin Hebert 20 August 2010 в 07:54
поделиться

2 ответа

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

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

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

  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.

2
ответ дан 2 September 2019 в 21:58
поделиться

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

Вам нужна аутентификация и авторизация.

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

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

0
ответ дан 2 September 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: