代码之家  ›  专栏  ›  技术社区  ›  Pawan

Java EE:防止应用程序URL黑客攻击

  •  0
  • Pawan  · 技术社区  · 12 年前

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

    现在,我需要保护应用程序免受我认为的url黑客攻击。例如,如果customerId为1的客户登录并查看其配置文件,则以下http-get变量将在地址字段中可见:customerId=1。 我需要阻止一个客户将customerId设置为2并查看另一个客户的配置文件。

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

    如何最好地实现这一点?

    有什么建议/意见吗?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Korgen    12 年前

    为什么只允许用户更改其个人资料,却在URL中提供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*/
    
        2
  •  0
  •   Germann Arlington    12 年前

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