Java EE:防止应用程序URL黑客入侵

时间:2012-08-06 13:10:30

标签: java security java-ee web-applications web

我正在开发一个现有的基于Web的应用程序。

现在,我需要确保应用程序不会被我认为称为url hacking。例如,如果具有customerId 1的客户登录并查看其配置文件,则在地址字段中将显示以下http get变量:customerId = 1。 我需要阻止客户设置customerId = 2并查看其他客户的个人资料。

问题在于,应用程序已经处于生产状态并处于良好的工作状态,因此对于此更改,更改应该是最小的。

如何最好地实现这一目标?

任何建议/评论?

2 个答案:

答案 0 :(得分:3)

当只允许用户更改个人资料时,为什么要在网址中提供ID?我认为没有必要这样做。而是从SecurityConext获取当前用户,并在没有id的URL上显示其配置文件。

您在评论中给出的新信息我建议......像这样:

只检查URL中给定的orderid是否属于当前用户。 你说你使用“普通的基于Web的应用程序”,所以我假设基于Servlet / jsp。在你的servlet中你会做这样的事情:

int orderId = Integer.parseInt(request.getParameter("orderId"));
String username = request.getUserPrincipal().getName();
/*now you need to check if username match with the username of the order e.g. by using hibernate to get the order by id and check its user and if not throw PermissionDeniedException or similiar*/

答案 1 :(得分:0)

95%同意Korgen的回答。 5% - 如果您想允许管理员访问以使用相同的功能编辑用户配置文件,只需切换到UUID以识别已编辑的用户。