1

我正在使用 jstl 代码来隐藏必须是唯一管理员用户才能访问的按钮……例如,现在我将按钮隐藏给重定向到 deletepage.jsp 的普通用户。我使用 c:if jstl 标签正确地制作了它......但是如果他们知道链接,普通用户仍然可以访问它......如何防止这种情况?

4

3 回答 3

0

执行此操作的 3 种方法:

1-对每个处理有此问题的调用的 servlet 进行验证。2-通过过滤器来做。3-使用任何框架,如struts。

框架将导致更少的代码以适当的方式编写。如果您不想要首选的框架,则应使用过滤器

于 2013-01-28T14:34:31.273 回答
0

您可以在 web.xml 文件中设置过滤器,然后实现 SecurityFilter 类。在这个类中,你需要实现函数

public void doFilter(ServletRequest req, ServletResponse res,FilterChain next) throws IOException, ServletException {
}

然后,您可以检查请求的 url 是否存在当前用户的会话。如果是,那么您可以将他导航到该页面;否则,只需拒绝并重定向到错误页面

if ("/admin.jsp".equals(httpReq.getServletPath())) {
    if(httpReq.getSession().getAttribute("CurrentUser")!=null) {

        // go to the requested url 
    }
    else {
        httpReq.getRequestDispatcher("/no_access.jsp").forward(httpReq, httpRes);
        return;
    }
}
于 2013-01-27T18:00:31.967 回答
0

使用 MVC,您可以让控制器根据访问控制列表 (ACL) 检查用户的身份,以防止访问受限页面。此外,为了进一步密封这一点,您可以对直接访问这些受限页面进行额外检查,以便用户无法直接请求它们。此建议解决方案的实施细节由您根据您的设计来决定。

于 2013-01-27T15:44:08.753 回答