好吧我是一个新手在会议上让我们想象我们有一个小的登录网站,
这是一个逻辑
它用的是什么
session_register
session_destroy
session_unset
session_start
Run Code Online (Sandbox Code Playgroud)
在什么地方session_id及的session_regenerate或session_name进去?在php网站上它说
session_id()用于获取或设置当前会话的会话ID.
我还是不明白,为什么我们还需要它们呢?在真实环境中它做了什么?
Gum*_*mbo 14
不,你不需要使用它们.一般来说,你所需要的只是
session_start 开始会话处理,和session_destroy销毁存储的会话数据(这不会修改$_SESSION),和session_unset重置$_SESSION变量(但你也可以$_SESSION = array()).session_id并且session_name要获取和设置当前会话ID和会话ID名称(默认为PHPSESSID).session_regenerate_id可用于重新生成/更改当前会话的会话ID.例如,如果您希望每10分钟刷新一次会话ID,或者在更改与会话关联的用户的真实性状态后,这可能很有用.
Ham*_*ite 10
session_regenerate_id() 用于防止会话固定.
会话固定意味着以下内容:您访问网站并检查您的会话ID.然后,您操纵另一个用户使用您的会话ID访问该站点,然后登录.现在您以该用户身份登录并拥有他的权限,因为您使用的是同一个会话.
为了防止这种情况,请在用户session_regenerate_id()成功登录时为其提供新的会话ID .现在只有他拥有会话ID,并且您的旧会话ID不再有效.
| 归档时间: |
|
| 查看次数: |
10447 次 |
| 最近记录: |