探秘Servlet 3.0中的Web安全改进

原创
开发 后端
之前我们考察了Servlet 3.0的新特性和异步处理方面的改进,今天我们来一起来了解Servlet 3.0安全方面的更新。跨站脚本攻击一直是Web攻击的最常用手段,其中Cookie则是Web安全的薄弱环节。在Servlet 3.0中开始支持HttpOnly Cookies,提升了Web安全程度。

【51CTO独家特稿】Servlet 3.0最为最新的Servlet最新标准,其提供了很多新特性,比如异步请求处理、声明式语法支持等。在这里我们将考察Servlet 3.0安全方面的增强。

对网站进行跨站攻击最常用的一个手段就是在网页中插入恶意的Html和JavaScript代码。一旦你的网页被增加这些恶意代码,那么就非常容易泄流你的个人信息,比如Cookie。

Cookie作为保留会话状态的手段,经常被用来保存用户登录信息等敏感性数据,但是由于Cookie既可以在服务器端读取,又可以在客户端通过脚本读取,则导致其成为Web应用安全的一个薄弱环节。

在2002年,微软采用了一种被称为“HttpOnly Cookies”的技术,来防止恶意读取Cookie信息。该技术实际并不复杂,只是在Cookie上增加一个额外的属性,在浏览器支持的情况下,如果尝试通过脚本读取Cookie内容,返回结果将为空。现在大多数服务器和客户端都采用的是这种技术,当然浏览对对XMLHttpRequest对象进行了特殊处理。

在Servlet 3.0规范中,Java Servlet开始支持“HttpOnly Cookies”。当使用HttpServletResponse的addCookie方法,向浏览器提供Cookie的时候,可以通过Cookie对象的setHttpOnly方法指定Cookie为HttpOnly。例如:

  1. Cookie cooki=new Cookie("user_name","guandeliang");  
  2. cooki.setMaxAge(60*60*24*365);  
  3. cooki.setPath("/");  
  4. cooki.setHttpOnly(true);  
  5. response.addCookie(cooki);  

另外,如果希望判断一个Cookie对象是否是HttpOnly,可以通过调用该对象的isHttpOnly()进行判断。

【编辑推荐】

  1. 简化Web应用开发 Servlet 3.0特性详解
  2. Java EE 6新特性之Servlet 3.0的异步处理
  3. Servlet和JSP经验总结
  4. 使用Jython编写Servlet
  5. WebWork注入Servlet方法详解
责任编辑:佚名 来源: 51CTO
相关推荐

2010-04-30 09:19:05

Servlet 3.0

2009-07-08 09:35:53

Java ServleServlet 3.0

2009-09-22 09:23:39

Chrome 3.0谷歌浏览器

2019-04-04 09:08:41

2009-07-08 10:02:41

Servlet 3.0

2021-02-26 05:19:20

Vue 3.0 VNode虚拟

2021-02-16 16:41:45

Vue项目指令

2009-06-15 09:12:45

Servlet 3.0

2021-02-22 21:49:33

Vue动态组件

2021-02-19 23:07:02

Vue绑定组件

2009-07-06 15:19:13

webwork ser

2021-02-28 20:41:18

Vue注入Angular

2022-12-12 14:34:43

2023-06-15 08:00:00

2009-08-25 15:30:55

DataGrid We

2010-07-16 13:30:26

2012-08-13 17:01:16

Web 3.0移动互联

2009-07-09 10:25:05

Servlet的Web

2009-07-09 16:47:26

Servlet的Web

2022-08-18 15:21:42

区块链DevOps
点赞
收藏

51CTO技术栈公众号