关于WEB项目的防篡改思路

红薯 发布于 2008/10/05 17:19
阅读 1K+
收藏 0

我们都知道在使用JSP开发web项目的时候,在交付项目给用户的时候,JSP源码对用户来说是可见的,用户只要稍懂一些基础知识就可以进行修改, 有些时候我们不愿意发生此事,这时候就需要保护JSP源码不被用户修改。

昨天看了看Tomcat的管理后台的程序配置发现确实不失为一种好办法。现介绍一下这种做法的道理:

首先我们知道JSP其实也是一种Servlet,不过是Servlet的扩展而已,那么我们也可以把一个JSP页面看成是一个Servlet来处 理。在使用Tomcat作为小服务程序容器的时候,Tomcat会把每个JSP文件编译成为一个java文件以及一个class文件,这两个文件一般存放 在{tomcat}\work\Catalina\localhost目录下对应web项目上下文路径的一个目录,例如admin,该目录下即存放了 JSP编译后的文件,这些文件按照其所处于web项目根目录下的不同目录进行存放,如果Tomcat的版本在5以上的话,则根路径是org\apache \jsp;Tomcat4则JSP处于什么目录即以什么包存放。这就是Tomcat对JSP页面的处理方法。

现在我们只需要把这些生成的class文件打成jar包,将该jar文件放到web项目的WEB-INF\lib目录下,然后删除所有的JSP文 件。下面一步就是最繁琐的工作了,逐一给每个JSP进行配置。下面我摘一段配置的例子,大家窥一斑而见全豹。

    <servlet>
        <servlet-name>login_jsp</servlet-name>
        <servlet-class>org.apache.jsp.login_jsp</servlet-class>
    </servlet>   

    <servlet-mapping>
        <servlet-name>login_jsp</servlet-name>
        <url-pattern>/login.jsp</url-pattern>
    </servlet-mapping>

上面这个例子就是处于web根目录下的login.jsp在Tomcat5下的配置。给所有的JSP加上配置后就完成了所有的步骤,下面尽管发布该 web项目而无需提供JSP源码。

有一个问题需要注意的是,如果要发布的web项目是在Tomcat下运行的话则无需其他步骤,但如果是运行于其他应用服务器的话则需要附带上 Tomcat下的一个jar文件到WEB-INF\lib目录下,这个文件是:jasper-runtime.jar 它位于{tomcat}\common\lib目录下。

如此一番用户要擅自修改页面就已经是非常麻烦的事情了,虽然说此举并不能保证绝对不被破解,但至少可抵挡90%的闲人,因为毕竟大部分人还是知难而 退的。

加载中
返回顶部
顶部