我正在使用jstl代码隐藏必须是唯一访问的管理员用户的按钮...例如,我将按钮隐藏到重定向到deletepage.jsp的普通用户。我使用c:if jstl标签严重地做了...但是如果普通用户知道链接它仍然会被访问...如何防止这种情况?
答案 0 :(得分:0)
使用MVC,您可以让控制器根据访问控制列表(ACL)检查用户的身份,以防止访问受限制的页面。此外,为了进一步密封,您可以额外检查直接访问这些受限制的页面,以便用户无法直接请求它们。此建议解决方案的实现细节由您决定,具体取决于您的设计。
答案 1 :(得分:0)
您可以在web.xml文件中设置filter,然后实现SecurityFilter类。在本课程中,您需要实现函数
public void doFilter(ServletRequest req, ServletResponse res,FilterChain next) throws IOException, ServletException {
}
然后,您可以检查当前用户是否有所请求网址的会话。如果是,那么您可以将他导航到该页面;否则,只是拒绝并重定向到错误页面
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;
}
}
答案 2 :(得分:0)
3种方法:
1 - 对每个处理此问题的servlet进行验证。 2-通过过滤器来做。 3-使用任何类似struts的框架。
框架将以适当的方式编写更少的代码。如果您不想要优先使用的框架,则应使用过滤器