我们可以停止接受外部创建的会话标识符..
谢谢
答案 0 :(得分:3)
如果人们传入他们自己的会话标识符,那么无论如何它只会是有效的。你已经受到保护了。
答案 1 :(得分:1)
添加一个内部检查,将session_id,remote_addr和user_agent的哈希值与当前存储的哈希值(在会话数据中)进行比较,例如:
在session_start();
if(空($ _ SESSION ['auth_hash'])){
//新访客
$ _SESSION ['auth_hash'] = sha1(session_id()。'SECRET_STRING'。$ _SERVER ['REMOTE_ADDR']);
}
if($ _SESSION ['auth_hash']!= sha1(session_id()。'SECRET_STRING'。$ _SERVER ['REMOTE_ADDR'])){
//无效的用户/ mitm-attack
session_destroy();
//显示登录等等
}
,例如:
session_regenerate_id();
$ _SESSION ['auth_hash'] = sha1(session_id()。'SECRET_STRING'。$ _SERVER ['REMOTE_ADDR']);
@Daniel:这不是真的,将自己的值分配给会话cookie将创建该会话,并且当该会话已经存在时,WILL将使用该会话。如果像我上面提到的那样的措施是使用nog,会话接管和mitm攻击是可能的......