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
Я думаю, что это немного слабовато, есть ли способ, которым я мог бы предоставить более безопасный способ, кроме этого.
Вы должны определить «безопасный» на основе вашего приложения. Требования к общедоступному веб-сайту, продающему книги, и частной библиотеке, на которой размещены конфиденциальные тома, полностью отличаются от любых других приложений, находящихся между ними.
Как минимум, вы должны сделать следующее -
Для общедоступного веб-сайта этого достаточно. На самом деле вы хотите, чтобы люди открывали ваши книги, поэтому, если кто-то изменит bookID, вам все равно.
Для безопасной библиотеки вам нужно сделать гораздо больше.
Есть несколько других стратегий защиты URL-адресов; некоторые используют токены, чтобы гарантировать, что URL-адрес не был изменен. Другие не отправляют bookID клиенту, а вместо этого полагаются на число от {1 до n}, где только сервер знает, что 1 соответствует Книге A и так далее. Но идея состоит в том, чтобы гарантировать, что пользователь не получит доступа к книге, на которую у него нет прав.
Если вы используете Spring, я настоятельно рекомендую Spring Security. В противном случае загляните в JAAS.
Вы должны предположить, что любой пользователь может отправлять вам все, что угодно. Решение не избавляет пользователей от отправки данных в URL-адресах, а для контроля того, что они могут фактически выполнять следующую операцию.
Вам нужна аутентификация и авторизация.