保护你的会话令牌
保护你的会话令牌 通常我们会采取以下的措施来保护会话。 1.采用强算法生成Session ID 正如我们前面用Web Scrab分析的那样,会话ID必须具有随机性和不可预测性。一般来说,会话ID的长度至少为128位。下面我们就拿常见的应用服务器Tomcat来说明如何配置会话ID的长度和生成算法。 首先我们找到{TOMCAT_HOME}\conf\context.xml,然后加入下面一段设置 <Manager sessionIdLength="20" ➊ secureRandomAlgorithm="SHA1PRNG" ➋ secureRandomClass="java.security.SecureRandom" ➌ /> ➊ 定义会话ID 的长度,如果我们这里不声明的话,默认是16字节。可能有读者会纳闷,怎么平时我看到的会话ID都是很长的呀?我们就拿这里的20个字节来讲吧,我们在浏览器发送请求时会发现这样的会话ID: JSESSIONID=90503B6BE403D4AB6164A311E167CF1F6F3F2BD0 仔细看会发现ID的长度为40,因为这里显示的是十六进制,每两个字符代表一个字节。 ➋ 定义随机数算法,默认的是SHA1PRNG,你也可以换成自己的算法。 ➌ 定义随机数类,默认的是java.security.SecureRandom