如果HTTP是无状态的,ASP.NET MVC如何支持会话?

4

我了解常规ASP使用视图状态来处理有状态性的问题,但是MVC并不试图延续有状态的谎言。那么它是如何维护会话状态的呢?


4
一个cookie包含了会话ID。 - CodesInChaos
啊,如果禁用了cookies,那么就没有会话了。有可能伪造一个cookie吗? - sircodesalot
是的,你可以伪造几乎任何东西。 - ppetrov
1
@sircodesalot 客户端可以随意操作cookie。但是,如果服务器正确实现了会话,那么猜测有效的会话ID几乎是不可能的。我不知道ASP.net是如何实现的,但一个流行的机制是生成一个随机的128位值作为会话ID。 - CodesInChaos
维护状态和会话是两个不同的概念。ASP.NET 和 ASP.NET MVC 可以处理 SessionState。ASP.NET 对于有状态页面有 ViewState。 - Mathias F
2个回答

7

1
它使用一个存储在Cookies中的“会话ID”来标识用户。如果您知道受害者的ID,并且其他安全措施不会干扰(例如基于IP的身份验证),则可能会发生欺骗。

在某些情况下,您可以使用虚假 IP。 - ppetrov
1
哇,我对桌面编程很熟悉,但是对于Web开发还比较新手。听起来Web安全相当复杂。有什么资源可以帮助我学习更多吗? - sircodesalot
1
@sircodesalot:OWASP Top 10 Project 可能是你最好的起点。 - marc_s
@sircodesalot 其实不完全是这样。这与每种基于服务器的编程一样,都需要对输入进行清理处理。 - Mark Segal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接