【问题标题】:Securely passing parameters in JSP/Servlet (No Frameworks)在 JSP/Servlet 中安全地传递参数(无框架)
【发布时间】:2015-04-06 06:51:15
【问题描述】:

我们有一个 JSP 页面和一个 Servlet 页面,我们通过 URL 从 JSP 将参数传递给 Servlet。下面是JSP链接

<a href="OpenServlet?idClient=23">Allergies</a>

在我们的 servlet 中,我们执行如下一些过程。

int id = Integer.parseInt(request.getParameter("idClient"));
//Do the work

RequestDispatcher d = request.getRequestDispatcher("view.jsp");
d.forward(request,response);

不幸的是,这使得idClient 100% 可见并且它也是可编辑的。我们注意到用户可以简单地从 URL 编辑idClient 并访问其他客户端信息!不仅如此,任何人都可以访问任何人的信息,无论客户是否属于他们!

我们怎样才能阻止这种情况?

【问题讨论】:

  • 你通常如何获取登录的用户?
  • @immibis:使用会话。
  • 1.获取登录用户。 2. 检查他们是否应该有权访问该客户的详细信息。 3. 如果没有,显示错误页面而不是客户端详细信息页面。
  • @immibis: 使用另一个 SQL 查询?我的意思是,为了加载数据,我们有一个 SQL 查询,所以我们需要另一个,请问您是这个意思吗?
  • 正是@immibis 所说的。只需确保登录用户有权访问给定资源。

标签: java jsp url servlets web


【解决方案1】:
  1. 获取登录用户。

  2. 检查该用户是否应该能够访问此客户的详细信息。

  3. 如果不是,则返回错误页面而不是客户端详细信息页面。

如果不知道您现有代码和数据库结构的详细信息,我无法更具体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-18
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多