jsp安全性問題

jsp項目不一樣jsp之間假設只經過超連接進行跳轉,安全性過低,不能知足現實生活中對安全性的要求!
爲了提升安全性。可以經過Servlet進行跳轉,進行跳轉的時候爲了進一步實現其安全性,可以經過間jsp文件放在WEB-INF目錄裏面。這樣安全性就能獲得提高。但是問題伴隨而來,放在WEB-INF目錄裏面,怎樣進行訪問?
可以實現的一種思路:另建一個Servlet類做爲頁面跳轉的中轉站!將需要使用到的放在WEB-INF目錄裏面的文件經過使用id進行區分,在需要訪問到這些jsp文件的時候直接經過中轉站而後得到要訪問的jsp的id,即可以進行對應的頁面跳轉。javascript

新建的Servlet類代碼例如如下:java

package cn.edu.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MNG extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String id = request.getParameter("id");
        //從頁面得到的用戶區分跳轉頁面的id
        System.out.println("id="+id);
        //我調試的時候使用的,並沒實用
        if(id.equals("1")){
             request.getRequestDispatcher("/index.jsp").forward(request,response);
        }else if(id.equals("2")){
            request.getRequestDispatcher("/WEB-INF/admin/add.jsp").forward(request,response);
        }else if (id.equals("3")) {
            request.getRequestDispatcher("/WEB-INF/admin/bisai.jsp").forward(request,response);
        }else if (id.equals("4")) {
            request.getRequestDispatcher("/WEB-INF/admin/gamema.jsp").forward(request,response);
        }else if (id.equals("5")) {
            request.getRequestDispatcher("/WEB-INF/admin/manager.jsp").forward(request,response); 
        }else if (id.equals("6")) {
            request.getRequestDispatcher("/WEB-INF/admin/message.jsp").forward(request,response);
        }else if (id.equals("7")) {
            request.getRequestDispatcher("/WEB-INF/admin/modify.jsp").forward(request,response); 
        }else if (id.equals("8")) {
            request.getRequestDispatcher("/WEB-INF/admin/pk.jsp").forward(request,response);
        }else if (id.equals("9")) {
            request.getRequestDispatcher("/WEB-INF/admin/result.jsp").forward(request,response); 
        }
    }
}

進行跳轉的頁面代碼例如如下:安全

<form action="AddServlet" method="post">
            <label>比賽編號:</label><input type="text" name="id" placeholder="請輸入比賽編號"/><br />
            <label>比賽名稱:</label><input type="text" name="gamename" placeholder="請輸入比賽名稱"/><br />
            <label>比賽時間:</label><input type="text" name="gametime" placeholder="*格式:YYYY.MM.DD"/><br />
            <label>比賽地點:</label><input type="text" name="gameaddress" placeholder="請輸入比賽地點"/><br />
            <label>人數限制:</label><input type="text" name="gamenum" placeholder="*格式:請填寫整數"/><br />
            <label>報名截止:</label><input type="text" name="deadline" placeholder="*格式:YYYY.MM.DD"/><br />
            <!-- <form action="" method="post"><input type="submit" value="加入"></form> <form action="tennis_game/WebRoot/WEB-INF/bisai.jsp" method="post"><input type="button" value="返回"></form> -->
            <button type="submit" value="加入">加入</button>
            <a href="MNG?id=3"><button type="button" value="返回">返回</button></a>
        </form>

經過id進行跳轉。
還有一種方法比較簡單,不用講全部的jsp文件全部都放在WEB-INF文件如下。只經過將登錄頁面要跳轉的目標頁面放入WEB-INF文件下便可了,經過登錄頁面跳轉的 Servlet類中經過會話對象session獲取用戶的帳戶密碼,而後在每一個頁面的開始經過JavaScript來驗證是否登錄。markdown

session

function checkNull(){ if(document.getElementById("id").value=="" || document.getElementById("id").value==null) { alert("賬號不能爲空!"); document.getElementById("id").focus(); document.getElementById("id").select(); return false; } if(document.getElementById("pass").value=="" || document.getElementById("pass").value==null) { alert("密碼不能爲空!

"); document.getElementById("pass").focus(); document.getElementById("pass").select(); return false; } if(document.getElementById("password").value!=document.getElementById("password2").value) { alert("兩次密碼輸入不一致!"); document.getElementById("password").focus(); document.getElementById("password").select(); return false; } if(document.getElementById("name").value=="" || document.getElementById("name").value==null) { alert("姓名不能爲空!"); document.getElementById("name").focus(); document.getElementById("name").select(); return false; } else return true; } 管理員登陸界面確保安全性: <% String adminid = (String)session.getAttribute("adminname"); if(adminid==null){ %> <script type="text/javascript" language="javascript"> alert("你尚未登陸。。。"); window.document.location.href="/TennisMatch/welcome"; </script> <% } %>
相關文章
相關標籤/搜索