安全性测试资料.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? Session 测试 Session测试主要检查Web应用系统是否有超时的限制,也就是检查用户登录后在一定时间内没有点击任何页面,是否需要重新登录才能正常使用,检查超时后能否自动退出,退出之后,浏览器回退按钮是否可以回到登录页面。 ? 命令注射漏洞测试 命令注射漏洞测试主要检查所有调用外部资源( 例如system 、exec 、fork ,或者所有的发出请求的语法)的源代码,查找那些来自于 HTTP请求的输入可能发起调用的所有地方。 ? 日志文件测试 日志文件测试主要检查Web运行的相关信息是否写进了日志文件、是否可追踪,是否记录了系统运行中发生的所有错误,是否记录了用户的详细信息,包括用户的浏览器、用户停留的时间、用户 IP 等。记录了用户的 IP,就能通过追捕查出用户的具体地点。错误作为日志保留下来,可供技术人员分析错误是由系统实现漏洞引起的还是由于黑客攻击引起的。 ? 数据使用时的一致性和完整性测试 Web 应用系统中,使用数据库时,可能发生数据的一致性和完整性错误,因此,要检测系统中是否有事务管理和故障恢复功能,确认事务数据是否正确保存,检测系统是否有定期数据备份功能。 ? 4. 容错测试 容错方案及方案一致性测试 接口容错测试 压力测试 ? 容错方案及方案一致性测试 出错处理应该在整个网站中保持一致性,并且每一个出错处理片断都应该是一个整体设计方案中的一部分。通过代码检查,测试系统差错处理方案是否合理,方案是否可以处理所有可能发生的错误,方案中是否存在泄漏设计细节的问题,是否存在不同的差错处理方案。 ? 安全性问题 - SQL注入 SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行。任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQL Server 将执行其接收到的所有语法有效的查询。一个有经验的、坚定的攻击者甚至可以操作参数化数据。 ? SQL 注入的主要形式包括直接将代码插入到与 SQL 命令串联在一起并使其得以执行的用户输入变量。一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串。在存储的字符串随后串连到一个动态 SQL 命令中时,将执行该恶意代码。 ? 注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。由于插入的命令可能在执行前追加其他字符串,因此攻击者将用注释标记“--”来终止注入的字符串。执行时,此后的文本将被忽略。 ? 以下脚本显示了一个简单的 SQL 注入。此脚本通过串联硬编码字符串和用户输入的字符串而生成一个 SQL 查询: var Shipcity; ShipCity = Request.form (ShipCity); var sql = select * from OrdersTable where ShipCity = + ShipCity + ; 用户将被提示输入一个市县名称。如果用户输入 Redmond,则查询将由与下面内容相似的脚本组成: SELECT * FROM OrdersTable WHERE ShipCity = Redmond ? 但是,假定用户输入以下内容: Redmond; drop table OrdersTable-- 此时,脚本将组成以下查询: SELECT * FROM OrdersTable WHERE ShipCity = Redmond;drop table OrdersTable-- 分号 (;) 表示一个查询的结束和另一个查询的开始。双连字符 (--) 指示当前行余下的部分是一个注释,应该忽略。如果修改后的代码语法正确,则服务器将执行该代码。SQL Server 处理该语句时,SQL Server 将首先选择 OrdersTable 中的所有记录(其中 ShipCity 为 Redmond)。然后,SQL Server 将删除 OrdersTable。 ? 只要注入的 SQL 代码语法正确,便无法采用编程方式来检测篡改。因此,必须验证所有用户输入,并仔细检查在您所用的服务器中执行构造 SQL 命令的代码。 ? SQL注入的危害 修改数据库内容 删除其它表 窃取数据到本地 执行系统命令,进而修改或控制操作系统、破坏硬盘数据等 特点 攻击耗时少、危害大 ? 编写代码的最佳实践 验证所有输入 使用类型安全的 SQL 参数 在存储过程中使用参数化输入 在动态 SQL 中使用参数集合 ? 验证所有输入 始终通过测试类型、长度、格式和范围来验证用户输入。以下建议应被视为最佳做法: 对应用程序接收的数据不做任何有关大小、类型或内容的假设。例如,您应该进行以下评估: 如果一个用户在需要邮政编码的位置无意中

文档评论(0)

bbnm58850 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档