How to prevent client from accessing JSP page
在我的 Web 应用程序中,我使用 JQuery 中的 .load() 函数,在 DIV.
中加载一些 JSP 页面
1
|
$(“#myDiv”).load(“chat.jsp”);
|
在 chat.jsp 中,除非此客户端已登录,否则不会执行任何 Java 代码,这意味着,我检查了会话。
1
2 3 4 5 6 |
String sessionId = session.getAttribute(“SessionId”);
if(sessionId.equals(“100”)){ //execute codes }else{ //redirect to log in page } |
那些将被执行的java代码,它们会out.println();一些HTML元素。
我不希望客户端在浏览器中写入 /chat.jsp 来访问此页面,因为它看起来很糟糕,而且主页中的其他内容也不存在,这可能会损害Web 应用程序安全性。
我怎样才能限制某人直接访问 chat.jsp,但又可以通过 .load() 访问它?
更新:
JavaDB 是我创建的一个类,它将我连接到数据库。
这是 chat.jsp
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<body>
<% String userId = session.getAttribute(“SessionId”).toString(); <% if (fi == 1) {%> |
伙计们,我不知道过滤器是什么意思。
更新
如果我决定发送一个参数告诉我此请求来自 Jquery。
1
|
.load(“chat.jsp”, { jquery :“yes” });
|
然后在chat.jsp中查看
1
|
然后他们可以使用这个 URL 简单地破解它。
1
|
/chat.jsp?jquery=yes
|
或类似的东西..
更新
我尝试了 Maksim 的建议,当我尝试访问 chat.jsp 时得到了这个。
这是想要的效果吗?
来源:https://www.codenong.com/12234592/