removed all the footers; formated all the files

This commit is contained in:
Oling Cat
2012-11-01 16:10:44 +08:00
parent 77b8677ae0
commit c059171e15
73 changed files with 4576 additions and 4782 deletions

21
6.4.md
View File

@@ -17,20 +17,20 @@ session劫持是一种广泛存在的比较严重的安全威胁在session技
w.Header().Set("Content-Type", "text/html")
t.Execute(w, sess.Get("countnum"))
}
count.gtpl的代码如下所示
Hi. Now count:{{.}}
然后我们在浏览器里面刷新可以看到如下内容:
![](images/6.4.hijack.png?raw=true)
![](images/6.4.hijack.png?raw=true)
随着刷新数字将不断增长当数字显示为6的时候打开浏览器(以chrome为例的cookie管理器可以看到类似如下的信息
![](images/6.4.cookie.png?raw=true)
![](images/6.4.cookie.png?raw=true)
下面这个步骤最为关键: 打开另一个浏览器(这里我打开了firefox浏览器),复制chrome地址栏里的地址到新打开的浏览器的地址栏中。然后打开firefox的cookie模拟插件新建一个cookie把按上图中cookie内容原样在firefox中重建一份:
@@ -57,7 +57,7 @@ count.gtpl的代码如下所示
//提示登录
}
sess.Set("token",token)
### 间隔生成新的SID
还有一个解决方案就是我们给session额外设置一个创建时间的值一旦过了一定的时间我们销毁这个sessionID重新生成新的session这样可以一定程度上防止session劫持的问题。
@@ -75,10 +75,7 @@ session启动后我们设置了一个值用于记录生成sessionID的时
上面两个手段的组合可以在实践中消除session劫持的风险一方面 由于sessionID频繁改变使攻击者难有机会获取有效的sessionID另一方面因为sessionID只能在cookie中传递然后设置了httponly所以基于URL攻击的可能性为零同时被XSS获取sessionID也不可能。最后由于我们还设置了MaxAge=0这样就相当于session cookie不会留在浏览器的历史记录里面。
## links
* [目录](<preface.md>)
* 上一节: [session存储](<6.3.md>)
* 下一节: [小结](<6.5.md>)
## LastModified
* $Id$
## links
* [目录](<preface.md>)
* 上一节: [session存储](<6.3.md>)
* 下一节: [小结](<6.5.md>)