为了保护jsp源码,是把jsp文件放入web-inf目录里呢?还是有其它更好的方法呢?请指教

解决方案 »

  1.   

    你的保护源码是什么意思?
    不让人访问jsp文件?
      

  2.   

    可以参考Tomcat的做法直接配置servlet 而不把jsp文件放在工程里面
      

  3.   

    如果是这样,可以在server.xml配置一下。
    <Context path="/pro" docBase="C:/OA/Deploy/JSP" debug="0" privileged="true" reloadable="true" />
      

  4.   

    谢谢大家关注to Paripatetic(逍遥):
    就是不让用户直接输入jsp地址链接访问页面,不让用户用下载工具(比如网络快车)把jsp源文件下载to interpb(曾曾胡):
    你地意思是用servlet代替所有的jsp吗?如果那样的话改动就比较麻烦了,目前项目的架构不可能作这样的改动.
    ps:项目用的是struts框架
      

  5.   

    晕,要是能下载JSP代码,我早发财了
      

  6.   

    明白 但是纠正一下FlashGet下载的也只是经server运行后的页面
    也就是IE中的源代码你不会这个都不让别人知道吧
      

  7.   

    是哦,下载的jsp果然是已经过解析了的,呵呵
      

  8.   

    既然不能直接下载源代码,现在就剩下"不让用户直接输入jsp地址链接访问页面"这个问题了,
    标准的做法是把jsp放入web-inf里呢?还是在tomcat那个什么安全那里配置什么的?还是有什么其他的方法,譬如当访问的是jsp的话就用拦截器挡一挡的?
      

  9.   

    ,以前刚入行时一个公司把jsp都放在web-inf下,当时见识少,没把代码弄出来,后悔啊
      

  10.   

    现在我地jsp也是放在web-inf同级目录的,如果没有其他方法的话那就只能移入web-inf中了
      

  11.   

    谢谢大家了,我已经开始把jsp移入web-inf里了,
    但还是有点不死心,究竟有没别的更好方法防止用户绕过action直接输入jsp地址访问的呢,我用的是struts
      

  12.   

    你看这样行不行,验证上次页面的来源,但是对于用JavaScript跳转过来的也是返回false,他只能认出是不是通过链接点进来的。
    也可以通过这种方法,给所有的页都加上一个框架,如果出了框架那肯定是直接输入的了。
    <%
    String SelHttp="";
    String ReHttp="";
    try{
    ReHttp=(String)request.getHeaders("Referer").nextElement();
    }
    catch(Exception e){
    return false;
    }
    SelHttp="http://"+request.getServerName();
    if(request.getServerPort()!=80){
    SelHttp+=":"+request.getServerPort();
    }
    SelHttp+="/";
    if((ReHttp.indexOf(SelHttp))!=0){
    return false;
    }
    return true;
    %>
      

  13.   

    倒了,jsp就应该是做页面的,如果别人参考,也只是参考一下页面的布局和美工。
    这些都会变成html的,你保护不了的。要是你把更多的东西写进去了,只能说这个程序写的
    有些垃圾,不值得保护。如果真的想让别人不知道你的代码,推荐一个日本人的做法,写一些自定义标签,把页面的
    一些主要布局都写在标签里,这么的话以后修改还很方便,还能很好的做到界面的统一,可以说是一举多得,这么的话,即使是服务器的管理人员也拿不到你的代码。
      

  14.   

    说实话,我不太明白jsp页面有什么需要保护的,在单个的jsp上只有很简单的语句,基本上没有复杂的逻辑,你的关键数据都在类里面阿。
      

  15.   

    在struts中,jsp页面是不赞成直接访问的,都是通过action重定向访问,所以在许多情况下,直接
    访问jsp页面会出现页面错误等意想不到的情况,严重的时候可能还有安全漏洞,所以一般在struts中都需要禁止jsp页面直接访问.我知道有好几种方法,但在struts中,web-inf是比较安全简单的方法。