sessionId安全性

session id 安全性问题

 

最一般的方法是自己管理session id

 

1. 用户login后,在后台加密出一个accessToken,并返回给用户。

2. 客户端接收到accessToken,可以将它存起来,web的话可以存在session storage,手机也可以保存accessToken,用于单点登录。

3. 同时,服务器会保存一份accessToken的相关信息在服务器,如:deviceId,IP,accessToken,loginTime,logoutTime,userId,userAgent等等。

3. 每次请求API都会将accessToken提交给服务器,服务器比较accessToken,看是否正确是否超时,如果成功就执行业务。

 

 

用Spring Security(适合CMS)

 

1. session id 由Spring Security创建。

2. 然后发送给客户端,然后保存在浏览器的cookie中。

3. 每次请求都将cookie发送到服务器,然后检查正确性和是否超时。

4. 这种方法要在Tomcat设置httponly和secure。(防止XSS攻击)

 

 

HttpOnly:

如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。

 

配置:

tomcat/conf/ 下找到context.xml修改<Context useHttpOnly="true">

 

secure

当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。

 

配置:(一般和HTTPS的证书一起使用)

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" 

               keystoreFile="/usr/local/tomcat7/server.keystore"

               keystorePass="Envisi0n"  />

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值