常用的web安全处理

1用户名和密码认证通过后,必须更换会话标识,以防止会话固定(session fixation)漏洞。

实施指导:

在用户名和密码认证通过后增加以下两行代码:

request.getSession().invalidate();

request.getSession();

 

2验证码字符串要求是随机生成,生成的随机数必须是安全的。

说明:对于java语言可以使用类 java.security.SecureRandom来生成安全的随机数。

 

3禁止带有敏感数据的Web页面缓存。

说明:带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息泄漏或通过代理服务器上网的用户数据互窜问题。

实施指导:

在HTML页面的<HEAD>标签内加入如下代码:

<HEAD>

<META HTTP-EQUIV="Expires" CONTENT="0">

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">

<META HTTP-EQUIV="Cache" CONTENT="no-cache">

</HEAD>

在JSP页面的最前面加入如下代码:

<%

response.setHeader("Cache-Control","no-cache");

response.setHeader("Pragma","no-cache");

response.setDateHeader("Expires",0);

%>

注意:以上代码对于采用强制缓存策略的代理服务器不生效(代理服务器默认是不缓存的),要防止代理服务器缓存页面,可以在链接后加入一个随机数pageid,此时链接变成:http://localhost:8080/query.do?a=2&pageid=2245562, 其中2245562数字是随机生成的,每次请求此页面时,随机数都不同,IE始终认为此为一个新请求,并重新解析,生成新的响应页面。

posted @ 2013-08-03 12:23  嗨,你的益达~~~  阅读(505)  评论(0编辑  收藏  举报