web.xml文件中的7个错误的安全配置
2013-07-23 09:41
344 查看
http://www.cnblogs.com/dynasty/archive/2012/01/29/2330913.html
web.xml文件中的7个错误的安全配置
关于Java的web.xml文件中配置认证和授权有大 量 的 文章。本文不再去重新讲解如何配置角色、保护web资源和设置不同类型的认证,让我们来看看web.xml文件中的一些常见的安全错误配置。(1) 自定义的错误页面没有配置
默认情况下,Java Web应用在发生错误时会将详细的错误信息展示出来,这将暴露服务器版本和详细的堆栈信息,在有些情况下,甚至会显示Java代码的代码片段。这些信息对为他们的病毒需找更多信息的黑客来说是一种恩惠。幸运的是,通过配置web.xml文件来展示自定义的错误页面是非常容易的。使用如下的配置后无论服务器在任何时候发生HTTP500错误,一个非常好的错误页面就会被显示出来。你可以为HTTP状态码添加另外的错误页面。?
?
<% try { String s = null; s.length(); } catch (Exception e) { // don't do this! e.printStackTrace(new PrintWriter(out)); } %>
这里请记住在合理配置了你的web.xml文件后,需要使用合理的日志记录技巧。
(2)绕过认证和授权
下面的代码片段展示了如何设置基于web的访问控制以便所有在”安全”目录中的一切只能被带有”admin”角色的用户访问。?
幸运的是,解决方案非常简单。仅仅需要从web.xml文件中移除<http-method>元素即可。
(3)SSL未配置
在所有使用敏感数据的应用中,SSL都应该被配置以保护数据传输安全。当然你可以在web服务器上配置SSL,但是一旦你的应用服务器设置了合适的SSLkey,那么在应用急启用SSL是非常容易的。
?
(4)未使用安全标示
很多web站点使用SSL进行认证,但是后面或者是阻止非SSL的的后续交互或者使得一部分网站内容仍然可以通过非SSL的访问。这使得会话的cookie(也就是JSESSIONID)容易受到session劫持攻击。要阻止它,cookie可以通过添加安全标志来创建,这确保了浏览器将不会在非SSL环境下传递cookie。在Servlet规范的旧版本中,没有标准的方式来将JSESSIONID定义为安全的。现在在Servlet3.0中,<cookie-config>元素可以用于确保这个。
?
(5)未使用HttpOnly标志
cookie可以使用HttpOnly标志创建,这将确保cookie不能被客户端脚本访问。这帮助减轻了一些常见的XSS攻击。就像Security标志一样,旧版本的Servlet规范没有提供相应的支持。在Servlet3.0中可以如下的配置它:?
(6) 使用URL参数来跟踪session
Servlet3.0规范中的<tracking-mode>允许你定义JSESSIONID是存储在cookie中还是URL参数中。如果会话ID存储在URL中,那么它可能会被无意的存储在多个地方,包括浏览器历史、代理服务器日志、引用日志和web日志等。暴露了会话ID使得网站被session劫持攻击的几率大增。然而,确保JSESSIONID被存储在cookie中非常容易:?
(7) 未设置会话超时时间
用户喜欢长时间的会话因为他们很方便。黑客喜欢长时间的会话因为他们有足够的时间来实施像session劫持攻击等。安全和可用性总是会出现冲突。一旦你知道如何使得你的会话存活,你可以按如下方法来配置活动时间:?
总结
构建和部署安全的应用需要从不同的受益人处获取需求。环境和配置和编码自身一样重要。通过思考这些常见的安全错误配置,希望你可以创建更加安全的应用。相关文章推荐
- web.xml文件中的7个错误的安全配置
- web.xml文件中的7个错误的安全配置
- web.xml文件中的7个错误的安全配置
- web.xml常见安全错误配置
- 在web.xml文件中配置的欢迎页面显示的时候报404的错误
- spring mvc框架 web.xml配置文件 Could not open ServletContext resource [/WEB-INF/classes/spring-servlet.xml] 错误
- J2EE项目web.xml文件中Struts2配置错误
- [错误]web.xml文件配置错误 servlet-name配置不一致
- IDEA配置项目及启动(web.xml引mybatis配置文件总是出现错误)
- Java - web.xml文件中可以配置哪些内容?
- Spring web.xml配置文件解析
- Servlet 中 web.xml 文件的配置问题
- 配置文件WEB-INF/urlrewrite.xml
- web.xml中context-param如何引用依赖jar包中的配置文件
- IIS7 无法写入配置文件web.config 错误
- servlet中配置文件web.xml中的参数context-param和init-param区别
- web项目xml配置文件获取数据 和TDES 加码
- jboss-web.xml配置文件说明
- web.xml配置文件详解
- web.xml文件中配置spring的ContextLoaderListener后报错