静态类和安全性

时间:2014-11-26 09:10:57

标签: c# asp.net iis

为什么Asp.Net中的静态类可能导致安全威胁? 对象只是活在当前会话中吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

对象位于IIS中所谓的AppPool。只要不再循环,就可以使用具有静态寿命的物体。由于无法可靠地知道回收何时发生,因此无论采用静态变量都是一个坏主意。使用它们来保持呼叫之间的数据,假设它们不会在呼叫之间保持数据两者同样危险。

也就是说,如果您的静态类不包含数据而且只包含方法,那就完全没问题了。

答案 1 :(得分:0)

静态类没有实例,因此您不应该将任何对象的任何状态保留在它们旁边。因此理论上它不应该成为正确设计安全性的问题。

如果使用不当,另一方面的静态变量可能会导致安全问题。

例如,如果像isLoggedIn这样的变量是静态的,一旦一个人登录,每个其他用户都会自动登录,因为该变量对于使用它的每个类的实例都是真的。