Apache+Tomcat整合防止目录泄露

[不指定 2005/11/01 22:54 | by ipaddr ]
Apache+Tomcat防止目录泄露
(ipaddr,bcomcn笔记,转载请注明)
Apache+Tomcat整合后,两者的主目录指向了同一目录,比如/website/app,因为Tomcat需要在主目录或context下建一个WEB-INF文件夹,对于Tomcat来说,通过Tomcat的8080端口,是无法访问这个目录的,但是,对于apache来说,默认情况下,对这个目录有访问权,用户可以直接访问http://localhost/WEB-INF/web.xml之类的来访问WEB-INF里面的配置,类和库。
需要在apache里配置一下,阻止用户访问WEB-INF之类的文件。
常用方法有:
1.
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>


2.
RewriteEngine on
RewriteRule /WEB-INF/ / [R]


Tomcat中数据库连接池的配置

[不指定 2005/11/01 22:21 | by ipaddr ]
Tomcat中数据库连接池的配置
Tomcat的配置真麻烦,手工操作的话,不但容易出错,而且,输入的内容还挺多,此外,有的配置选项和格式,我个人认为太冗余了。
在Tomcat下配置数据源连接池,按书本上的操作不成功,在网上找资料找了很多,还是不成功,一般是提示URL为null,或Class为null。

Tomcat的官方文档上的方法也行不通,估计是最新版(5.0.28)的Tomcat连接池配置有些变化。
最后,经过摸索,终于配置成功,共享一下。
(ipaddr,bcomcn笔记,转载请注明)
使用Tomcat自动的管理工具(提示:根据多次配置经验,建议大家以后配置Tomcat最好是用自带的管理工具/admin)
a.登录管理界面:http://localhost/admin (或其它形式的地址http://ip:8080/admin)
b.左边的菜单栏时有Tomcat Server,Resources,User Definition.(//注意,不是在Resource里配置数据源,这里配置的是全局的数据源)
c.进入Tomcat Server->Service(Catalina)->Host(一般是loalhost)->Context(/ipaddr),找到具体要配置数据源的context[点左边的树形节

点打开子树,不是直接点节点名称]。
d.打开Context(/ipaddr)[这里是你需要配置数据源的Context,比如Contet(/test)][点左边的树形节点打开子树,不是直接点节点名称]
e.再打开Resources->Data Sources,这里就是针对某个具体Context的DataSource了,点击这里的DataSources,在右边的下拉菜单中选择

Create New Data Source.
f.输入相应的JNDI的名字(一般是jdbc/dbname),URL,驱动(mysql是com.mysql.jdbc.Driver),UserName,UserPassword,以及连接数,点下面的保

存(Save),再点上面的(Comit Changes)。退出管理,你就可以使用数据源了。(一般不需要重启tomcat)
g.测试
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/ipaddr");
Connection con=ds.getConnection();
Statement stmt=con.createStatement();
....
经研究发现:Tomcat自带的管理工具配置连接池,只在是TOMCAT_HOME/conf/Catalina/hostname/contextn.xml里做了些修改。这里的配置文件的功能说明,参考我写的另外一篇笔记,“Tomcat的配置文件”
欢迎大家讨论和反映问题.


Tomcat配置文件补充

[不指定 2005/11/01 22:20 | by ipaddr ]
Tomcat的配置文件,[Ipaddr,bcomcn学习笔记,转载请注明]在绝大多数资料上,都只提到了conf/server.xml以及context下面的WEB-INF/web.xml,但我发现,有时,在server.xml上面没有配置的内容,tomcat也运行着,后来发现,原来除了这两处配置外,还有一处重要的配置文件,在TOMCAT_HOME/conf/Catalina/下面(Catalina是server.xml里的engine的名称),也是一些关键的配置文件,每个主机(server.xml里的Host),在这里有一个目录,每个主机(Host)里的一个context在该主机目录下有一个对应的xml文件,比如,根目录对应ROOT.xml,其它名为test的context对应test.xml。

TOMCAT_HOME/conf/Catalina/hostname/context1.xml相当于在server.xml中的Catalina引擎下的hostname主机下配置context1WEB应用。在目录里配置,和在server.xml里配置效果是一样的,Tomcat自带的admin,自动将所有context转到目录下配置,而不是集中在server.xml。

Tomcat防止目录泄露

[不指定 2005/11/01 22:18 | by ipaddr ]
有时不输入页面,直接输入根目录下某个文件夹的名字,这个目录下的文件就会都列出来,这样是不安全的.我们需要在tomcat中进行设置:
打开tomcat的web.xml文件,加入:
<servlet>  
      <servlet-name>default</servlet-name>  
      <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>  
      <init-param>  
          <param-name>debug</param-name>  
          <param-value>0</param-value>  
      </init-param>  
      <init-param>  
          <param-name>listings</param-name>      <!--在这里加一个值-->
          <param-value>false</param-value>      <!--改成false就OK了-->  
      </init-param>  
      <load-on-startup>1</load-on-startup>  
</servlet>
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]