为什么Asp.Net中的静态类可能导致安全威胁? 对象只是活在当前会话中吗?
谢谢!
答案 0 :(得分:1)
对象位于IIS中所谓的AppPool
。只要不再循环,就可以使用具有静态寿命的物体。由于无法可靠地知道回收何时发生,因此无论采用静态变量都是一个坏主意。使用它们来保持呼叫或之间的数据,假设它们不会在呼叫之间保持数据两者同样危险。
也就是说,如果您的静态类不包含数据而且只包含方法,那就完全没问题了。
答案 1 :(得分:0)
静态类没有实例,因此您不应该将任何对象的任何状态保留在它们旁边。因此理论上它不应该成为正确设计安全性的问题。
如果使用不当,另一方面的静态变量可能会导致安全问题。
例如,如果像isLoggedIn这样的变量是静态的,一旦一个人登录,每个其他用户都会自动登录,因为该变量对于使用它的每个类的实例都是真的。