【发布时间】:2011-09-05 06:04:20
【问题描述】:
我试图弄清楚如何使用 cookie 来防止黑客输入指向 Java Web 应用程序内部部分的 URL,除非用户登录,否则该部分不应访问。
例如,我想防止黑客输入http://domain.com/myapp/listtable.jsp 并能够在不登录的情况下查看表格。
我有一个 servlet,它存储了它已分发给客户端的所有 cookie 的列表。我很难理解 JSP/JSTL 代码会是什么样子,以检查请求中的 cookie 并将其与服务器存储的内容进行比较。
类似:
<c:forEach items="${cookie}" var="currentCookie">
<!-- Compare each incoming cookie with the cookies kept in the servlet,
if there's not a match then redirect to the login page. Otherwise,
show the contents of the page below -->
</c:forEach>
<html>
--- main page HTML here
谁能给我一些关于如何做到这一点的建议?
【问题讨论】:
-
这是一个 servlet 的工作,而不是一个 JSP
-
是的,但是如果直接在客户端浏览器中输入 jsp 的 URL,servlet 不会在 JSP 之前运行,对吗?
-
JSP 不应该对浏览器直接可见,它们应该隐藏在
WEB-INF中,并通过 servlet 访问。这是 java webapps 的基本良好设计。 -
查看stackoverflow.com/tags/servlet-filters/info 了解 servlet 过滤器。它甚至包含一个 hello world 过滤器,它完全符合您的要求。