jsp安全性問題

來源:互聯網
上載者:User

標籤:inpu   isp   之間   實用   location   throw   nis   不同   問題   

jsp項目不同jsp之間假設只通過超連結進行跳轉,安全性太低,不能滿足現實生活中對安全性的要求!
為了提高安全性。能夠通過Servlet進行跳轉,進行跳轉的時候為了進一步實現其安全性,能夠通過間jsp檔案放在WEB-INF目錄裡面。這樣安全性就能得到提升。可是問題伴隨而來,放在WEB-INF目錄裡面,怎樣進行訪問?
能夠實現的一種思路:另建一個Servlet類作為頁面跳轉的中轉站!將須要使用到的放在WEB-INF目錄裡面的檔案通過使用id進行區分,在須要訪問到這些jsp檔案的時候直接通過中轉站然後獲得要訪問的jsp的id,即能夠進行對應的頁面跳轉。

建立的Servlet類代碼例如以下:

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來驗證是否登陸。

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><% } %>

jsp安全性問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.