Php 安全性-建议为每个请求重新生成授权代码吗?

Php 安全性-建议为每个请求重新生成授权代码吗?,php,web-services,security,cookies,Php,Web Services,Security,Cookies,假设您有一个包含80个字符的字符串的cookie“代码”,它是应用程序的访问代码。建议在每次请求应用程序时重新生成此代码,还是在创建页面的第一个会话时重新生成此代码?我选择使用第一种方法,但我注意到,虽然存在长轮询请求,但不可能发送请求(因为我必须等待请求截止日期,才能接收新的cookie)。有什么建议吗?如果您在每次请求时都重新生成代码,那么有人刷新得太快,他们将遇到HTTP竞争条件并丢失会话。这造成了可用性噩梦 每次权限升级时重新生成会话ID(例如,用户登录,或者如果用户具有在用户模式和管理

假设您有一个包含80个字符的字符串的cookie“代码”,它是应用程序的访问代码。建议在每次请求应用程序时重新生成此代码,还是在创建页面的第一个会话时重新生成此代码?我选择使用第一种方法,但我注意到,虽然存在长轮询请求,但不可能发送请求(因为我必须等待请求截止日期,才能接收新的cookie)。有什么建议吗?

如果您在每次请求时都重新生成代码,那么有人刷新得太快,他们将遇到HTTP竞争条件并丢失会话。这造成了可用性噩梦

每次权限升级时重新生成会话ID(例如,用户登录,或者如果用户具有在用户模式和管理模式之间切换的“更改权限”功能,等等)。如果需要常规超时,请执行以下操作:

session_start();
if(!isset($_SESSION['birth'])) $_SESSION['birth'] = time();
if( time() - $_SESSION['birth']) > 60 ) {
   // Every minute
   session_regenerate_id();
   $_SESSION['birth'] = time();
}

对于安全性来说,更重要的是将HTTPS(TLS 1.1+,如果可以的话)与HST结合使用,以防止会话固定,指定熵文件(例如,
/dev/uradom
),并可选地将会话绑定到IP地址和用户代理。(您可以使用与我上面发布的代码片段类似的应用程序层逻辑来完成此操作。)

您可以编辑您的问题并可能添加一些示例吗?这可能会更好地解释你的问题,你更有可能得到答案。谢谢