关于java:如何防止客户端访问JSP页面 | 珊瑚贝

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 (userId != null) {
            String roomId = request.getParameter(“roomId”);
            String lastMessageId = request.getParameter(“lastMessageId”);
            JavaDB myJavaDB = new JavaDB();
            myJavaDB.Connect(“Chat”,“chat”,“chat”);
            Connection conn = myJavaDB.getMyConnection();
            Statement stmt = conn.createStatement();
            String lastId =“”;
            int fi = 0;
            ResultSet rset = stmt.executeQuery(“select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>” + lastMessageId +” and room_id=” + roomId +” order by m.message_id asc”);
            while (rset.next()) {
                fi = 1;
                lastId = rset.getString(2);
    %>
   
       
            <%=rset.getString(3) +“” + rset.getString(4)%>
       
       
            <%=rset.getString(1)%>
       
   
    <%            }
    %>
   
        <% if (fi == 1) {%>
        <%=lastId%>
        <% } else {%>
        <%=lastMessageId%>
        <% }%>

    <% if (fi == 1) {%>
   
     
    <% }
        } else {
            response.sendRedirect(“index.jsp”);
        }%>
</body>

伙计们,我不知道过滤器是什么意思。

更新

如果我决定发送一个参数告诉我此请求来自 Jquery。

1
.load(“chat.jsp”, { jquery :“yes” });

然后在chat.jsp中查看

1
String yesOrNo = request.getParameter(“jquery”);

然后他们可以使用这个 URL 简单地破解它。

1
/chat.jsp?jquery=yes

或类似的东西..

更新

我尝试了 Maksim 的建议,当我尝试访问 chat.jsp 时得到了这个。

enter

这是想要的效果吗?




来源:https://www.codenong.com/12234592/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8792.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?