JAVA年度安全 第二周 WEB.XML中的错误处理

http://www.jtmelton.com/2012/01/10/year-of-security-for-java-week-2-error-handling-in-web-xml/ 

这是什么东西,我为啥要关心?

OWASP TOP 10中我已经详细讨论了这个话题,你可以这里http://www.jtmelton.com/2010/06/02/the-owasp-top-ten-and-esapi-part-7-information-leakage-and-improper-error-handling/ 找到更详细的信息。在本文中,我只讨论重点内容。

在任何应用中错误、异常处理都是一个重要的、经常被忽略的部分。关于这个话题实际上有很多可以讨论的,但是为了简明扼要,我只介绍J2EE WEB应用中最关键的部分。

实际上,异常处理最需要担心的是你根本不处理异常。如果你的代码或者你使用的第三方库允许向上抛出异常,异常到达应用程序的边界进入web容器之后,如何处理异常就依赖于你所使用的容器/应用服务器的内置规则了。默认情况下通常有一个标准的错误页面来简单的输出异常栈所有的信息。这很明显是一个问题:系统的很多的信息都展现给攻击者了,会导致进一步的攻击。

我应该做什么?

处理这个问题很简单。最基本的建议是至少要处理java.lang.Throwable(捕获任何java的异常/错误),为http 错误码这样的特殊异常提供更多专用的处理方案,最常见的错误码是404500,下面是可以被用到web.xml中的示例代码片段:

注意:error.jsp页面应该是通用的,提供一些预定的信息,并且这些信息不会泄露任何细节来帮助攻击者鉴别应用的特性。

<error-page>
  <error-code>404</error-code>
  <location>/error.jsp</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/error.jsp</location>
</error-page>
<error-page>
  <exception-type>java.lang.Throwable</exception-type>
  <location>/error.jsp</location>
</error-page>


在你的应用中捕获异常后还有其他的需要操作,但是从安全的角度上看,捕获异常和特定的错误已经足够了。

参考
———–
http://software-security.sans.org/blog/2010/08/11/security-misconfigurations-java-webxml-files
http://www.jtmelton.com/2010/06/02/the-owasp-top-ten-and-esapi-part-7-information-leakage-and-improper-error-handling/ 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值