PHP会话欺骗/劫持

PHP会话欺骗/劫持,php,session,Php,Session,当有人登录我的网站时,他们显然会用用户名和密码填写表格。然后表单检查数据库中是否存在该密码(当然是该密码的加密版本),然后以该用户的用户ID作为会话ID启动会话 这容易发生任何类型的欺骗/劫持/黑客攻击吗?有没有一种更安全的方式来进行会话,这样就不会有人错误地“登录到别人的帐户”了 session_regenerate_id(); $_SESSION['SESS_MEMBER_ID'] = $uid; $_SESSION['SESS_NAME']

当有人登录我的网站时,他们显然会用用户名和密码填写表格。然后表单检查数据库中是否存在该密码(当然是该密码的加密版本),然后以该用户的用户ID作为会话ID启动会话

这容易发生任何类型的欺骗/劫持/黑客攻击吗?有没有一种更安全的方式来进行会话,这样就不会有人错误地“登录到别人的帐户”了

        session_regenerate_id();

        $_SESSION['SESS_MEMBER_ID'] = $uid;
        $_SESSION['SESS_NAME'] = $email;

        session_write_close();

最好的选择是检查用户或其用户代理的IP地址


当然,如果他们的IP地址发生变化,他们必须重新进行身份验证。例如,如果智能手机上的用户离开其WiFi范围并开始使用其蜂窝网络。我认为,对于可能有一小部分用户带来的小小不便,安全性的回报是值得的。

可能是@Rakeshhetty的副本-我对我的代码特别感兴趣,因为另一个代码没有提供任何代码,我也不知道我的代码是否安全。动态IP呢?我个人没有,所以我不知道它们多久会改变一次,但这肯定会成为一个麻烦吗?@TedMosby这取决于ISP,我看到它们经常改变24-48小时,最长持续时间更长。不确定这是否可行,我想这取决于应用程序。重新登录可能不是世界末日。顺便说一句,你建议我怎么做?我是否应该在创建会话时为您的IP添加一个新的会话变量,然后在所有其他页面上交叉检查以确保它仍然是相同的IP?我想这是有道理的,如果有人知道IP是否可以更频繁地更改,我只想输入一些信息。是的,在登录时,添加用户的IP地址,然后在每个页面上检查,比如if(isset($会话['IP')和strcmp($会话['IP'),$服务器['REMOTE\u ADDR')!==0)die('zomghaxxors')@RyankEmpty通常是一个好主意,但如果此人有意入侵该网站,那么更改您的IP就像在路由器配置中对MAC地址进行一次小的编辑,然后重置路由器一样简单。