Securing Session State
ASP.NET session state授权你存储和找回用户在一个Web应用程序浏览多个页面时的用户值.ASP.NET session state 识别从同一浏览器在限制时间内的一个session和能持续一个变量值.浏览器 sessions被标记在一个session cookie或URL中(配置cookieless).
在所有的ASP.NET应用程序中默认ASP.NET session state是都是授权的,并且被配置使用session cookies标记浏览器sessions.
ASP.NET session state 存储变量值是在内存中,但你能配置session state使它存储在a state server, a SQL Server, or a custom session-state store.
当下面代码和配置最佳方法能改进你的应用程序安全,它还有重要的是你继续保持你的应用程序server端更新,还有对Microsoft SQL Server, Active Directory, and other data sources for your application等其他的修补.
Secure Session-State Configuration
session-state特性默认是授权的.当默认配置设置大多都是安全的值,你想不允许使用sessino state.更多信息可以看.sessionState Element (ASP.NET Settings Schema).
Securing Configuration Values
当敏感信息在configuration文件中时,你应该加密,更多看Encrypting Configuration Information Using Protected Configuration.
Securing Connections to a Session State Data Source
Connection Strings
这个是最容提到,它是重要性在于保护敏感信息存储SQL Server,session state服务,或其他数据源的连接字符串.保持连接你的数据服务端的安全,建议你最好加密码connection string.更多信息看Encrypting Configuration Information Using Protected Configuration.
Connecting to SQL Server using Integrated Security
你应该连接你的电脑上的SQL Server使用综合安全性避免你的连接字符串存在安全问题并且会使你的userID和password暴露.当你指定一个完整的安全的connection方式连接到一个SQL Server上时,这个session-state特性将回复到这个进程的一致性.你应该确保所有ASP.NET运行时默认运行进程中的进程的一致性,或一个有限用户数目.ASP.NET Impersonation and Session-State Modes.
Securing the Session ID
当保护你的应用程序和数据时,最重要的是你要维护session标识暴露给在网络上有害的起源(an unwanted source over the network )和被使用来对你的应用程序进行攻击.下面是推荐改进你的session标识的安全性:
(1)保护你的应用程序的Secure Sockets Layer (SSL).
(2)为你的session Timeout指定一个简单的值.还有考虑保证在客户端也是同样的时间强制使用客户端脚本在客户端控制,或使用addHeader方法来刷新表头.如下面
Response.AddHeader("Refresh", Session.Timeout & ";URL=Logoff.htm"
Response.AddHeader("Refresh", Session.Timeout + ";URL=Logoff.htm";
(3)避免使用cookieless sesssions.如果你指定cookieless sessions,警告用户不能e-mail,bookmark或保存包括SessionID.
(4)在允许用户log out时,你应该掉用HttpSessionState.Abandon方法.警告用户在退出后再关闭浏览器.
(5)当使用cookiless session时,配置regenerateExpiredSessionID为true,那当一个的session标识过期时,将始终开始一个新的session.
(6)避免指定cookie modes为 AutoDetect 和UseDeviceProfile.
Secure Web Pages that Use Session State
工作在应用程序页面的敏感数据应该使用标准的Web-security机制来保护,如使用Secure Sockets Layer (SSL) 和需要登录才能执行敏感操作如更新个人信息或删除帐户.
还有,页面不应该暴露敏感数据如密码,和在一些case中的用户名,必须做一个清出文本.确保页面显示这样的信息都通过SSL使用并是只能通过用户身份验证才能使用.
Error Messages and Events
Exceptions
防止敏感信息被暴露,配置你的应用程序既不能显示详细错误信息或要显示信息就在当客户端它自己就是服务端才能显示错误信息.
Event Log
如果你的服务端运行的是Windows Server2003,你能使用securing the event log改进你的应用程序安全性,并且设置关于size,retention,等的event log 参数来间接防止一个对你的的服务端攻击.
Custom Session-state Store Providers
当创建一个自定义session-state存储提供者,确保你符合安全最佳方法,避免攻击若SQL注入,当使用自己定义的session-state存储提供者,确保这个提供者已经符合安全最佳方法
在所有的ASP.NET应用程序中默认ASP.NET session state是都是授权的,并且被配置使用session cookies标记浏览器sessions.
ASP.NET session state 存储变量值是在内存中,但你能配置session state使它存储在a state server, a SQL Server, or a custom session-state store.
当下面代码和配置最佳方法能改进你的应用程序安全,它还有重要的是你继续保持你的应用程序server端更新,还有对Microsoft SQL Server, Active Directory, and other data sources for your application等其他的修补.
Secure Session-State Configuration
session-state特性默认是授权的.当默认配置设置大多都是安全的值,你想不允许使用sessino state.更多信息可以看.sessionState Element (ASP.NET Settings Schema).
Securing Configuration Values
当敏感信息在configuration文件中时,你应该加密,更多看Encrypting Configuration Information Using Protected Configuration.
Securing Connections to a Session State Data Source
Connection Strings
这个是最容提到,它是重要性在于保护敏感信息存储SQL Server,session state服务,或其他数据源的连接字符串.保持连接你的数据服务端的安全,建议你最好加密码connection string.更多信息看Encrypting Configuration Information Using Protected Configuration.
Connecting to SQL Server using Integrated Security
你应该连接你的电脑上的SQL Server使用综合安全性避免你的连接字符串存在安全问题并且会使你的userID和password暴露.当你指定一个完整的安全的connection方式连接到一个SQL Server上时,这个session-state特性将回复到这个进程的一致性.你应该确保所有ASP.NET运行时默认运行进程中的进程的一致性,或一个有限用户数目.ASP.NET Impersonation and Session-State Modes.
Securing the Session ID
当保护你的应用程序和数据时,最重要的是你要维护session标识暴露给在网络上有害的起源(an unwanted source over the network )和被使用来对你的应用程序进行攻击.下面是推荐改进你的session标识的安全性:
(1)保护你的应用程序的Secure Sockets Layer (SSL).
(2)为你的session Timeout指定一个简单的值.还有考虑保证在客户端也是同样的时间强制使用客户端脚本在客户端控制,或使用addHeader方法来刷新表头.如下面
Response.AddHeader("Refresh", Session.Timeout & ";URL=Logoff.htm"
Response.AddHeader("Refresh", Session.Timeout + ";URL=Logoff.htm";
(3)避免使用cookieless sesssions.如果你指定cookieless sessions,警告用户不能e-mail,bookmark或保存包括SessionID.
(4)在允许用户log out时,你应该掉用HttpSessionState.Abandon方法.警告用户在退出后再关闭浏览器.
(5)当使用cookiless session时,配置regenerateExpiredSessionID为true,那当一个的session标识过期时,将始终开始一个新的session.
(6)避免指定cookie modes为 AutoDetect 和UseDeviceProfile.
Secure Web Pages that Use Session State
工作在应用程序页面的敏感数据应该使用标准的Web-security机制来保护,如使用Secure Sockets Layer (SSL) 和需要登录才能执行敏感操作如更新个人信息或删除帐户.
还有,页面不应该暴露敏感数据如密码,和在一些case中的用户名,必须做一个清出文本.确保页面显示这样的信息都通过SSL使用并是只能通过用户身份验证才能使用.
Error Messages and Events
Exceptions
防止敏感信息被暴露,配置你的应用程序既不能显示详细错误信息或要显示信息就在当客户端它自己就是服务端才能显示错误信息.
Event Log
如果你的服务端运行的是Windows Server2003,你能使用securing the event log改进你的应用程序安全性,并且设置关于size,retention,等的event log 参数来间接防止一个对你的的服务端攻击.
Custom Session-state Store Providers
当创建一个自定义session-state存储提供者,确保你符合安全最佳方法,避免攻击若SQL注入,当使用自己定义的session-state存储提供者,确保这个提供者已经符合安全最佳方法