我使用jstl代码来隐藏必须是access...Now的唯一管理员用户的按钮,例如,我向重定向到deletepage.jsp的普通用户隐藏按钮。我正确地使用了c:if jstl tag...But,它仍然会被普通用户访问,如果他们知道links...How来防止这种情况?
发布于 2013-01-27 23:44:09
使用MVC,您可以让控制器根据访问控制列表(ACL)检查用户的身份,以阻止对受限制页面的访问。此外,为了进一步保护它,您可以对直接访问这些受限制的页面进行额外的检查,这样用户就不能直接请求它们。此建议解决方案的实现细节由您根据自己的设计决定。
发布于 2013-01-28 02:00:32
您可以在web.xml文件中设置filter,然后实现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-28 22:34:31
有3种方法可以做到这一点:
1-对每个处理有此问题的调用的servlet进行验证。2-通过过滤器来实现。3-使用任何框架,比如struts。
框架将以适当的方式编写更少的代码。如果你不想要框架,你应该使用过滤器
https://stackoverflow.com/questions/14548876
复制相似问题