Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Asp.net 对Web会话状态使用Cookie-存在哪些陷阱?_Asp.net_Session_Cookies_Webserver_Session State - Fatal编程技术网

Asp.net 对Web会话状态使用Cookie-存在哪些陷阱?

Asp.net 对Web会话状态使用Cookie-存在哪些陷阱?,asp.net,session,cookies,webserver,session-state,Asp.net,Session,Cookies,Webserver,Session State,当涉及到扩展web应用程序时,使用进程内会话状态是有害的(不能很好地使用集群,当服务器回收时会爆炸) 假设您只需要在会话状态中保留少量信息,那么使用加密cookie项而不是特定的状态服务器/db有什么坏处 显然,使用cookie会产生少量的网络开销,而且很明显,您的操作假设在客户端浏览器/移动设备上启用了cookie 您还发现了该方法的哪些陷阱? 对于简单、可扩展和健壮的会话来说,这是一个不错的选择吗?另一个陷阱是它们可能被窃取并在您的站点上重播 顺便说一句:与其在cookie中存储一些东西,不

当涉及到扩展web应用程序时,使用进程内会话状态是有害的(不能很好地使用集群,当服务器回收时会爆炸)

假设您只需要在会话状态中保留少量信息,那么使用加密cookie项而不是特定的状态服务器/db有什么坏处

显然,使用cookie会产生少量的网络开销,而且很明显,您的操作假设在客户端浏览器/移动设备上启用了cookie

您还发现了该方法的哪些陷阱?


对于简单、可扩展和健壮的会话来说,这是一个不错的选择吗?

另一个陷阱是它们可能被窃取并在您的站点上重播


顺便说一句:与其在cookie中存储一些东西,不如在cookie中存储一个密钥,并使用memcached(memcached可以跨服务器场工作)。

通常会话ID使用cookie,因此只要信息量较小,就可以将信息存储在cookie中,尽管您不应该存储任何有价值的东西(如CC号码、SSN等),但实际上应该存储在cookie中,即使是加密的

我不是专家,但根据我的经验,我发现以下是正确的(至少使用PHP和ASP.Net)

Cookie

  • [pro]可扩展性很好,因为它会在每次请求时传输
  • [pro]Cookie只能通过SSL连接提交
  • [pro]可用于跨服务器技术和跨服务器机器
  • [con]每次请求和响应都会传输数据
  • 需要在浏览器上启用[con]
状态服务器/DB

  • [pro]数据仅存储在服务器上
  • [pro]即使用户清除cookies,数据仍然存在
  • [pro]可用于跨服务器技术
  • [con]需要在请求/响应时传递ID(因此需要cookie或附加到每个URL)
  • [con]在默认模式下不能很好地扩展,但是如果整个机器都可以专门用于状态,那么这就不是什么问题。还有很多其他可扩展性技术可以遵循
  • [con]需要通过URL、Cookie或其他方式传递会话ID变量,以使用户与数据保持联系

对于简单、可扩展和健壮的会话,这是一种极好的方法。 当然,加密的质量很重要,这通常是很难做到的,但这是可能做到的

我不同意其他一些海报:

可以针对加密cookie值发起的任何重播攻击都可以针对存储为cookie的会话密钥发起。如果这很重要,请使用https


如果清除cookie,则存储在状态服务器或数据库中的会话数据也将丢失;当会话密钥丢失时,会话将无法再检索。

取决于我们试图存储的信息量非常小,考虑到cookie将被加密,实际cookie内容不应该那么重要,更重要的是大小。想法?很好。这可以用加密的时间戳cookie组件来抵消吗?您错过了状态服务器的最大缺点:仍然需要cookie。有效点,我将更新,但我要指出的是数据本身并没有存储在cookie中。