Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 无cookie的安全会话管理_Security_Cookies_Session Cookies - Fatal编程技术网

Security 无cookie的安全会话管理

Security 无cookie的安全会话管理,security,cookies,session-cookies,Security,Cookies,Session Cookies,几个月前,我参观了一个安全研讨会,我们讨论了使用cookie进行会话管理时的一些安全问题。 有人告诉我,cookies最初不是为处理会话而设计的。 但是应该怎么做呢?Cookies仍然是会话管理的最佳方式。请注意cookies中的限制。为了获得更好的结果,请使用无法通过http传输的内容,仅使用https。例如,如果页面上存在对不安全图像的引用,则很难意外泄漏这些内容。安全的方法是生成一个加密随机128位值(即CSPRNG生成的随机值),然后将其作为POST数据传递到每个页面 e、 g。 这不

几个月前,我参观了一个安全研讨会,我们讨论了使用cookie进行会话管理时的一些安全问题。 有人告诉我,cookies最初不是为处理会话而设计的。
但是应该怎么做呢?

Cookies仍然是会话管理的最佳方式。请注意cookies中的限制。为了获得更好的结果,请使用无法通过http传输的内容,仅使用https。例如,如果页面上存在对不安全图像的引用,则很难意外泄漏这些内容。

安全的方法是生成一个加密随机128位值(即CSPRNG生成的随机值),然后将其作为POST数据传递到每个页面

e、 g。

这不仅会使会话标识符在用户屏幕上可见,还会被referer头泄漏,并默认记录在浏览器历史记录、代理和服务器日志中。默认情况下很少记录POST数据


一些银行使用此方法来确保用户在其会话期间只使用一条活动路径-会话标识符可以轻松地旋转,这样,如果用户使用不同的路径,则其标识符不匹配,并注销。从安全的角度来看,当您有一个必须按设定顺序执行的多步骤流程时,这非常有用。当用户选择与开发人员期望不同的路径时,可能会出现一些业务逻辑漏洞。

谢谢您的提示。但是,如果没有cookie,会话管理怎么做呢?您可以在URL中放置会话密钥。然而,这通常被认为是非常糟糕的做法,并且存在众所周知的安全问题。另一个非常不同的选择是在客户端执行所有操作,例如使用Javascript,并保持服务器无状态,例如使用RESTAPI。的优点是服务器更简单,并且更容易确保其安全。另一方面,它意味着用Javascript编程,这对于无bug代码来说不是一个好的选择。
<form method="post" action="/globalHandler">
  <input type="hidden" name="sessionId" value="<sessiontoken>" />
  <input type="hidden" name="page" value="accountDetails" />
</form>
https://example.com?sessionId=1234...