Php 会话id(md5(ip地址))是否足够安全?

Php 会话id(md5(ip地址))是否足够安全?,php,security,session,sessionid,Php,Security,Session,Sessionid,我将创建一个登录屏幕。 因此,如果用户输入正确的用户名和密码,我将创建如下会话: session_start(); $my_session_id = session_id(md5("user's remote ip address") ); 然后我将把$my_session_id保存回user表中 每次加载页面时,我都要对照数据库中的字段检查session_id(),以验证会话是否正常 假设数据库是安全的,那么代码是否足够好和安全 **编辑:好吧,我知道它不安全,但是这个呢: session_

我将创建一个登录屏幕。 因此,如果用户输入正确的用户名和密码,我将创建如下会话:

session_start();
$my_session_id = session_id(md5("user's remote ip address") );
然后我将把$my_session_id保存回user表中

每次加载页面时,我都要对照数据库中的字段检查session_id(),以验证会话是否正常

假设数据库是安全的,那么代码是否足够好和安全

**编辑:好吧,我知道它不安全,但是这个呢:

session_start(); 
session_id(); 
session_regenerate_id(true); 
$new_session_id = session_id();
//save the new_session_id into table
set $_SESSION['user_ip'] = user's remote ip
然后在每个页面上,根据数据库字段检查$\u SESSION['user\u ip']和SESSION\u id

够好吗?
**不,它一点也不安全。你为什么要这么做?如果要将会话绑定到IP地址,请将IP存储在会话变量中并进行检查。

您应该检查是否有具有动态IP的用户。

不,根本没有。我可以为任何IP重新创建会话id,从而劫持任何会话。只需保留默认会话id,确保在登录时始终保留该id(以防止会话固定攻击),并将IP与会话一起存储,以验证会话实际上属于用户。

启动会话时,它已经创建了自己的会话id。不建议创建自己的会话id

若要将其存储在表中,可以通过
$sessionId=session_id()获取它并存储在表中。这样会更好


有关更多信息,请访问:

No;事实并非如此。数百个用户可以共享同一个IP地址。不,在NAT的情况下,这是非常危险的。我已经编辑了我的问题。能否请您再次检查,看看现在是否足够好?我们是否需要定期重新生成会话id以防止会话劫持?