把JSP先行編譯成class檔案進行JSP檔案的保護
來源:互聯網
上載者:User
js|編譯 在Weblogic中發布Web Application工程時,為了保護JSP檔案避免未經授權的訪問和窺視,可以用weblogic.jspc把JSP檔案precompile成為servlet檔案,放到WEB-INF/classes目錄下。基於Servlet的聲明,WEB-INF不作為Web應用的公用文檔樹的一部分。因而,WEB-INF目錄下的資源不是為客戶直接服務的,這樣就可以一定程度上保證JSP的安全。
具體的實現步驟如下(Weblogic for linux):
1、用weblogic.jspc編譯JSP檔案
(1)在Linux下的工作目錄下,建立如下的shell檔案,檔案名稱為jspc.sh
#!/bin/sh
JAVA_HOME=/opt/IBMJava2-131
WBL_LIB=/u11/bea/wlserver6.1/lib/weblogic.jar
CLASSPATH=${JAVA_HOME}/lib:.:${WBL_LIB}
TARGET_DIR=../mofa/WEB-INF/classes # 這是JSP編譯後的servlet檔案的存放目錄
WEBAPP_DIR=../mofa # 這是你要發布的Web Application的目錄
${JAVA_HOME}/bin/java -classpath ${CLASSPATH} weblogic.jspc -k -g -compileAll -d ${TARGET_DIR} -webapp ${WEBAPP_DIR}
在上面藍色字型的部分是要根據使用者自己的配置進行修改。
(2)設定jspc.sh檔案的可執行屬性
# chmod +x jspc.sh
(3)在目前的目錄下,執行jspc.sh檔案,進行JSP檔案的編譯,編譯後class檔案,應該在WEB-INF/classes/jsp_servlet目錄下。
2、便已成功後,從Web Application的目錄中把所有的JSP移走或刪除。
3、編輯weblogic.xml檔案,把jsp-descriptor標籤內的內容清空,加入如下的內容:
<jsp-descriptor>
<jsp-param>
<param-name>precompile</param-name>
<param-value>false</param-value>
</jsp-param>
<jsp-param>
<param-name>pageCheckSeconds</param-name>
<param-value>-1</param-value>
</jsp-param>
</jsp-descriptor>
4、編輯web.xml檔案,在其中添加如下內容:
<servlet>
<servlet-name>JSPClassServlet</servlet-name>
<servlet-class>weblogic.servlet.JSPClassServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JSPClassServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
5、在Weblogic上發布這個Web Application。
6、訪問相應的JSP檔案,如果能夠訪問成功,說明整個過程沒有問題