书籍名称:Web安全设计之道 -.NET代码安全,界面漏洞防范与程序优化  
.NET安全审核检查表  
检查项 任务描述
设计环节  
  Security descisions should not rely on client-side validations; they are made on the server side.
   
  The Web site is partitioned into public access areas and restricted areas that require authentication access. Navigation between these areas should not flow sensitive  credentials information.
cookie1=personal info; path="/public" cookies2=crfedential ifno; path="/secure"
   
  The indentities used to access remote resource from ASP.net web applications are clearly identified.
   
  Mechanisms have been identified to secure credentials,authentication tickets, and other sensitive information over network and in persistent stores.
问题一: .NET 有针对ConnectionString 加密组件,VSS SQA Assets\Project Assets\...CryptoUtility.rar.
问题二: 专门对Cookie 进行保护的?https://msdn.microsoft.com/zh-cn/library/zdh19h94(v=vs.80).aspx
  A secure approach to exception management is identified. The application fails securely in the event of exceptions.
  The site has granular authorization checks for pages and directories.
  Web controls, user controls, and resource access code are all partitioned in their own assemblies for granular security.
   
应用条件分类  
   
  User input is validated for type, length, format, and range.Input is checked for known valid and safe data and then for malicious dangerous data. 
有效安全的输入, 需要注意的地方有: public 方法的参数(GL:?) 所有来自非信任源的输入字段应该用函数或者正则表达式来约束。
  String form field input is validated using regular expressions.
  Regular HTML controls, query string, cookies, and other forms of input are validated.
   
  The RequiredFieldVaildator control is used where data must be controls.
   
  Free form input is sanitized to clean malicious data.
For example, HttpUtility.HtmlEncode and HttpUtility.UrlEncode.
   
  Input file names are well formed and are verifiably valid within the application context.
   
  Output that includes input is encodeed with HtmleEncode and UrlEncode.
<%Response.Write(Server.HTMLEncode("..."))%>
  MapPath restricts cross-application mapping where appropriate. 如果我们使用MapPath将虚拟路径映射到一个物理路径,那么应当重载Request.MapPath.它接受一个布尔参数, 就可以避免交叉应用映射(corss-application mapping)。
  Character encoding is set by the server(ISO-8859-1 is recommended/UFT 8?)
   
  The ASP.Net Version1.1 validatedRequest option is enabled.
   
  URL Scan 需要安装到Web服务器。
   
  HttpOnly cookie的选项防止客户端跨站攻击(IE6.1 以上的版本才支持)
   
  SQL parameters are used in data access code to validate length and type of data and to help prevent SQL injection.
   
   
认证安全审查(适用于安全工程师)  
   
  Site is partitioned to restricted areas and public areas.
Web.config setting the access public pages and restricted pages. 
   
  Absolute URLs are used for navigation where the site is partitioned with secure and non-secure folders.
   
  Secure Sockets Layer(SSL) is used to proted credentials and authentication cookies.
   
  The slidingExpiration attribute is set to "false" and limited authentication cookie time-outs are used where the the cookie is not protected by using SSL.
   
  The forms authentication cookie is restricted to HTTPS connections by using the requireSSL attribute or the secure cookie property.
  在HTTPS 连接时使用reireSSL 属性或者安全cookie 属性来限制认证信息的cookie.
   
  The authentication cookie is encrypted and integrity checked(protection="All").
   
  Authentication cookies are not persisted.
   
  Application cookies have unique path/name combinations.
   
  Personalization cookies are separate from authentication cookies.
   
  Passwords are not stored directly in the user store; password digests with salt are stored instead.
   
  The impersonation credentials(if using a fixed identity) are encrypted in the configuration file by using Aspnet_setreg.exe
   
  Strong password policies are implemented for authentication. 例如:用户密码必须达到7个字符长度,同时应该至少包含数字和字符。
   
  The<credentials> element is not used inside<forms> element for Forms authetication(use it for testing only)
   
授权验证审查  
  URL authrization is used for page and directory access control.
  File authorization is used with Windows authentication.(使用Windows 认证方式时应该注意检查NTFS权限)
  Principal permission demand are used to secure access to classes and members. Explicit role checks are used if fine-grained authorization is required.
   
配置信息审查  
  Configuration file retrieval is blocked by using HttpForbiddenHandler
  A least-privileged account is used to run ASP.NET.
  Custom account credentials(if used) are encrypted on the <processModle> element by using Aspnet_setreg.exe
  To enforce machine-wide policy, Webconfig setting are locked by using allowOverride="false" in Machine.config.
  SSL is used to protect sensitive data on the wire.
  Sensitive data is not passed across pages; it is maintained using server-side state management.
  Sensitive data is not stored in cookies, hidden form fields, or query strings.
  Do not cache sensitive data. Output caching is offby default.
  Plain text passwords are avoided in Web.config and Machine.config files.(Aspnet_setreg.exe is used to encrypt credentials.)
   
会话状态的审查  
  The session cookie is protected using SSL on all pages that require authenticated access.
  Windows authertication is used to connect to Microsoft SQL ServerAtm state database.
  在SQL server限制对状态数据的访问
  Connection strings are encrypted by using Aspnet_setreg.exe
  The conmmunication channel to state store is encrypted(IPSec or SSL)
参数形式审核  
  View state is protected using message authentication codes(MACs)
  Query strings with server secrets are hashed.
  All input parameters are validated.
  Page.ViewStateUserKey is used to counter one-click attacks.
   
错误信息审核  
  Structured exception handling is used.
  Exception details are logged on the server.
  Generic error pages with harmless message are returned to the client.
  Page-level or application-level error handlers are implemented
  The application distinguishes between errors and exception conditions.
日志处理功能审核  
  配置ASP.NET进程, 以便允许在运行时新建事件源, 或在安装时创建应用程序事件源。
配置文件审核(适用于开发人员)  
  在生产服务器上禁用跟踪 <trace enabled ="false">
  通过设置debug="false",在生产服务器上禁用调试编译
  如果应用程序不使用查看状态, 应将enableViewState 设置为"false" 如果应用程序使用查看状态,应将enableViewState 设置为"true",并将 enableViewStateMac设置为"true"以便检测查看状态的篡改
  将自定义的错误页返回客户端,并通过设置mode="on",防止返回例外详细信息, 由defaultRedirect属性来指定一般错误页面。
  正确配置身份验证模式,以满足应用程序的要求。要强制使用特定的身份验证类型,可以使用带有allowOverride="false"的<location>元素
  对网站进行划分,以便进行公共的和受限制的访问 对身份验证cookie进行加密, 并检查其完整性 身份验证cookie 需要将SSL 状态设置为true 如果不使用SSL,则应将滑动期限设置为false 会话生存时间需要进行限制 cookie的名称和路径是惟一的。
  如果使用模拟标识, 可以通过使用Aspnet_setreg.exe在注册表中对其进行加密。 
  验证角色名称的格式是否正确
  在同一台Web服务器上部署多个ASP.NET web 应用程序时,应使用"Isolate.Apps"设置, 以确保为每个Web应用程序生成单独的密钥。
  如果mode="StateServer",凭据是以加密的形式存储在注册表中,如果mode="SQLServer",则使用Windows身份验证连接到状态存储数据库,并且凭据是以加密的形式存储在注册表中。
  将不用的文件类型映射到HttpForbiddenHandler, 防止通过HTTP方式检索文件,
  用最低权限的账户
  禁用不使用的协议
   
Web Farm审核  
  维护会话状态 会话状态的作用是为了避免服务器的相似性,应该在进程外维护ASPNET的会话状态。 比如, ASPNET SQL Server的状态数据库和远程计算机上的进程外状态服务中应该考虑维护会话状态。 
  加密和验证密钥
一机多用审核  
  使应用程序有独特的计算机密钥,使用<machineKey>上的IsolateApp或者每个应用程序的<machineKey>元素
  启用每个应用程序的表单身份验证Cookie的唯一路径/名称组合
  Web Farm中的所有服务器上的启用公共计算机密钥
  使用代码访问安全信任级别进行进程隔离,并限制对系统资源的访问。
ACL和Permiss ions权限审核  
  ASPNET临时目录,临时目录,.NET框架目录 .NET框架配置目录 网站根目录 系统根目录 全局程序集缓存 内容目录
应用程序BIN目录安全审核  
  配置IIS Web 权限 将执行权限设置为None 需要注意的是Bin目录没有读取,写入,或者目录浏览权限。
   
  为禁止用户访问,可以将关于身份验证的设置全部删除。
   

.NET安全审核检查表的更多相关文章

  1. 关于cnas培训

    关于cnas(2014-12-9----2014-12-12) 目的:完成内审相关知识培训,可以做一个合格的内审人员 过程: 1.为什么会存在实验室 2.iso9000是怎么产生的,以及存在的意义 3 ...

  2. PSP个人项目耗时对比记录表:四则运算

    Personal Software Process Stages Time(%) 计划 5    •估计这个任务需要多长时间 5 开发 60    •需求分析  5    •生成设计文档  5     ...

  3. SQL业务审核与优化

    审核   什么是业务审核 类似与code review 评审业务Schema和SQL设计 偏重关注性能 是业务优化的主要入口之一           审核提前发现问题,进行优化           上 ...

  4. 告别被拒,如何提升iOS审核通过率(上篇)

    iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...

  5. 用php做注册审核

    做注册审核就像前面讲的注册登录一样,也是要连接数据库 首先在数据库内要做这样一张表: 表名为users表 里面的列名分别为用户名,密码,姓名,性别,生日,账户的状态,照片 然后就可以写代码了,要注册的 ...

  6. iOS审核这些坑,腾讯游戏也踩过

    作者:Jamie,专项技术测试工程师,在iOS预审和ASO优化领域从事专项测试相关工作,为腾讯游戏近100个产品提供专项服务. WeTest 导读 在App上架苹果应用商店的过程中,相信大多数iOS开 ...

  7. php注册审核

    通过注册审核,判断刚创建的账户是否可以使用. 后台管理员审核通过后,账号可以使用. 通过session 设置只能通过登录入口进入网页. 原理:通过数据库设置账号的一个字段状态,例: isok:1, i ...

  8. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇四:关于OneNote入库处理以及审核

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  9. iOS提交AppStore后申请加急审核

    提交审核后进去下面链接申请加急审核链接:https://developer.apple.com/appstore/contact/appreviewteam/index.html 在I would l ...

随机推荐

  1. android开发之自定义组件

    android开发之自定义组件 一:自定义组件: 我认为,自定义组件就是android给我们提供的的一个空白的可以编辑的图片,它帮助我们实现的我们想要的界面,也就是通过自定义组件我们可以把我们要登入的 ...

  2. python3 连接SQLserver

    pymssql 是Python语言用来连接微软 SQL SERVER 数据库的类库,实现了 Python DB API 2.0 .官网介绍. 最简事例: #!/usr/bin/env python # ...

  3. BZOJ2301 [HAOI2011]Problem b

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  4. codevs1183泥泞的道路

    题意:给定一张有向稠密图和通过每条边的时间和路程,问从1到n的路程/时间 最大为多少 正解:SPFA+二分答案 开始做的时候,想直接跑图论,后来发现好像不对(不然数据范围怎么这么小) 但是显然要用到图 ...

  5. WPF元素可视化效果

    在WPF中设置元素的可视化效果主要用到BlurEffect类和DropShadowEffect类.(目前只学到这两个,哈哈) 1.BlurEffect类 命名空间: System.Windows.Me ...

  6. CSS--结构和层叠

    选择器的特殊性 特殊性值表述为4个部分,如0,0,0,0.具体特殊性如下所示: 举例说明一下: 通配符选择器的特殊性 通配符选择器其特殊性为0,0,0,0 !important重要性 大家都知道内联样 ...

  7. VS快捷键大全(总结了一些记忆的口诀)

    相信.Net开发人员都想能够熟记各种VS快捷键以提高平时开发的效率,但苦于记忆能力太差而快捷键又特别多,特别烦,所以作罢! 下面我将简单介绍一下我记忆VS快捷键的一些方法,希望对大家有所帮助. 1.窗 ...

  8. TeamViewer12.0.71503(远程控制软件)精简版单文件企业版介绍

    TeamViewer 是一款能在任何防火墙和 NAT 代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可 ...

  9. UML的目标

    http://zhidao.baidu.com/link?url=ghQvzG70vSCSLyQcrHDTd7xt1aSWBR73lPIMxBCEPo1ktkq9cQ3EE9TXX1mZyHINkVA ...

  10. 之前总结的今天给大分享一下iOS

    退回输入键盘 苹果 ios 开发一年的工作笔记 - (BOOL) textFieldShouldReturn:(id)textField{ [textField resignFirstResponde ...