其他ASP.NET安全最佳实践是什么?
到目前为止已确定列于此处:
在将应用程序移至生产环境时,始终生成新的加密密钥和管理员密码.
切勿直接或以加密形式存储密码.始终存储单向散列密码.
始终将连接字符串存储在Web.config的标记中,并使用受保护的配置提供程序(RSA或DPAPI)在配置部分中对其进行加密.见这里的例子
使用具有最小权限的用户ID连接到SQL Server或您正在使用的数据库.例如,如果您只是从某个应用程序模块执行存储过程,那么您必须创建一个只具有执行权限的用户ID.
如果要在页面上使用基于角色的安全性,请使用PrincipalPermission.
[PrincipalPermission(SecurityAction.Demand, Role="Admin")] public class AdminOnlyPage : BasePageClass { // ... }
始终使用参数来防止SQL查询中的SQL 注入.
考虑在IIS服务器上安装URLScan以防止SQL注入.另外,用于防止XSS攻击.您可以使用MSFT的AntiXSS库而不是内置编码输出,而不是HttpServerUtility中的内置HtmlEncode.
始终在Web配置中保留customErrors,以使您将错误/异常设为私有
在Web应用程序中,始终验证用户对html标记或任何脚本的输入.
切勿存储敏感信息,例如cookie中的密码.
如果发生异常,请勿显示系统错误消息,堆栈跟踪等.
Phil Jenkins.. 11
我发现Microsoft的Developer Highway Code是一个有用的安全检查表.
我发现Microsoft的Developer Highway Code是一个有用的安全检查表.