直接在IE中输入不存在的JSP页面将会报错出现TOMCAT等系统信息,如何避免被人恶意利用来获得TOMCAT等系统的信息,比如我输入:http://localhost:8888/myjsp/12345.jsp
因为这个页面不存在,所以会返回以下错误信息:
type Status reportmessage /12345.jspdescription The requested resource (/12345.jsp) is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.5.17这样对方就可以查看到我的TOMCAT版本,更高明一点的人可能查到数据库的漏洞,我想求教解决方法,不管你输入的是什么,只要你输入的页面不存在,就自动跳转到一个页面,提示访问非法,不暴露系统信息.十分感谢
因为这个页面不存在,所以会返回以下错误信息:
type Status reportmessage /12345.jspdescription The requested resource (/12345.jsp) is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.5.17这样对方就可以查看到我的TOMCAT版本,更高明一点的人可能查到数据库的漏洞,我想求教解决方法,不管你输入的是什么,只要你输入的页面不存在,就自动跳转到一个页面,提示访问非法,不暴露系统信息.十分感谢
解决方案 »
- SMSLib实现Java短信收发的功能,一次发送成功过后,第二次com就会被smslib占用,不能发送成功会抛出异常。
- 怎么写一个简单的java分页程序。。。。
- JqGrid navGrid is not a function
- i18n lib哪里下载
- 怎么根据模板建立网站啊?? 急!!!!!!!!!!!!!
- 关于ResourceBundle的问题,在线等!!!!
- iReport3.7.0或者2.0.5生成.jsper类型的问题和哪个版本的Jasperreports兼容
- 50分:要个jsp 生成验证码,提交后怎么验证
- 使用什么工具可以在jsp页面中利用数据库中地数据绘制出统计柱状图、饼状图等图形?
- 框架效果的其他实现方法??
- javabean怎么用相对路径读取web-inf下的abc.txt文件?
- 如何实现这样的WEB访问?求思路和基本方法。
Welcome-file-list 元素及其辅助的welcome-file元素解决了这个模糊的问题。例如,下面的web.xml项指出,如果一个URL给出一个目录名但未给出文件名,服 务器应该首先试用index.jsp,然后再试用index.html。如果两者都没有找到,则结果有赖于所用的服务器(如一个目录列表)。
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
虽然许多服务器缺省遵循这种行为,但不一定必须这样。因此,明确地使用welcom-file-list保证可移植性是一种良好的习惯。8 指定处理错误的页面现 在我了解到,你在开发servlet和JSP页面时从不会犯错误,而且你的所有页面是那样的清晰,一般的程序员都不会被它们的搞糊涂。但是,是人总会犯错 误的,用户可能会提供不合规定的参数,使用不正确的URL或者不能提供必需的表单字段值。除此之外,其它开发人员可能不那么细心,他们应该有些工具来克服 自己的不足。
error-page元素就是用来克服这些问题的。它有两个可能的子元素,分别是:error-code和exception- type。第一个子元素error-code指出在给定的HTTP错误代码出现时使用的URL。第二个子元素excpetion-type指出在出现某个 给定的Java异常但未捕捉到时使用的URL。error-code和exception-type都利用location元素指出相应的URL。此 URL必须以/开始。location所指出的位置处的页面可通过查找HttpServletRequest对象的两个专门的属性来访问关于错误的信息, 这两个属性分别是:javax.servlet.error.status_code和javax.servlet.error.message。
可回忆一下,在web.xml内以正确的次序声明web-app的子元素很重要。这里只要记住,error-page出现在web.xml文件的末尾附近,servlet、servlet-name和welcome-file-list之后即可。8.1 error-code元素
为了更好地了解error-code元素的值,可考虑一下如果不正确地输入文件名,大多数站点会作出什么反映。这样做一般会出现一个404错误信息,它表示不能找到该文件,但几乎没提供更多有用的信息。另一方面,可以试一下在www.microsoft.com、www.ibm.com 处或者特别是在www.bea.com 处输出未知的文件名。这是会得出有用的消息,这些消息提供可选择的位置,以便查找感兴趣的页面。提供这样有用的错误页面对于Web应用来说是很有价值得。 事实上rm-error-page子元素)。由form-login-page给出的HTML表单必须具有一个j_security_check的 ACTION属性、一个名为j_username的用户名文本字段以及一个名为j_password的口令字段。
例如,程序清单5-19指示服务器使用基于表单的验证。Web应用的顶层目录中的一个名为login.jsp的页面将收集用户名和口令,并且失败的登陆将由相同目录中名为login-error.jsp的页面报告。程序清单5-19 web.xml(说明login-config的摘录)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
<!-- ... -->
<security-constraint> ... </security-constraint>
<login-config>
<auth-method> FORM </auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login-error.jsp</form-error-page>
</form-login-config>
</login-config>
<!-- ... -->
</web-app>