web应用程序的安全(上).ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
web应用程序的安全(上)

SQL插入 SQL插入攻击利用输入验证中的漏洞来在数据库中运行任意命令。当您的应用程序使用输入来构造动态SQL语句以访问数据库时,可能出现这种攻击。如果您的代码使用的存储过程传递了包含未筛选的用户输入的字符串,则也可能出现这种攻击。使用SQL插入攻击,攻击者可以在数据库中执行任意命令。如果应用程序使用越权帐户来连接到数据库,则此问题将会更加严重。在这种情况下,使用数据库服务器来运行操作系统命令是可能的,但会潜在地危及其他服务器的安全,而且还会检索、操纵和损坏数据。 * SQL插入 SQL插入示例 当您的数据库查询中包括未经验证的用户输入时,您的应用程序可能很容易受到SQL插入攻击。特别容易受到影响的是用未筛选的用户输入构造动态SQL语句的代码。考虑以下代码: SqlDataAdapter myCommand=new SqlDataAdapter(SELECT * FROM Users WHERE UserName=+txtuid.Text+,conn); 攻击者可以通过终止特定的SQL语句来插入SQL,方法是使用单引号字符加分号字符开始一个新命令,然后执行他们自己选择的命令。考虑下面输入到txtuid字段的字符串。 * SQL插入 ;DROP TABLE Customers – 这将导致以下语句提交给数据库以执行。 SELECT * FROM Users WHERE UserName=; DROP TABLE Customers --‘ 假定应用程序的登录具有足够的数据库权限,则此语句会删除客户表格(这也是在数据库中使用最低特权的另一个原因)。双短划线(--)表示SQL注释,用来对程序员所添加的任何其他字符(例如右引号)进行注释。 * SQL插入 注意:分号实际上并非必需。SQL Server将执行由空格分开的两个命令。还可执行其他更具欺骗性的命令。将以下内容输入到txtuid字段: ‘ OR 1=1 – 建立此命令: SELECT * FROM Users WHERE UserName=OR 1=1 – 因为1=1恒成立,攻击者将检索Users表格中的每一行数据。 * SQL插入 防止SQL插入的对策包括: 1、执行彻底的输入验证。您的应用程序应在向数据库发送请求之前验证其输入。 2、将参数化的存储过程用于数据库访问,以确保不会将输入字符串误认为可执行语句。如果您不能使用存储过程,那么在建立SQL命令时请使用SQL参数。 3、使用最低特权的帐户来连接数据库。 * 身份验证 根据您的要求,有几种可用的身份验证机制可选。如果未能正确选择和实现身份验证机制,则攻击者会利用该机制暴露的漏洞来获取您的系统的访问权。利用身份验证机制的漏洞所构成的最大的威胁包括: 网络偷听 强力攻击 字典攻击 Cookie重播攻击 凭证偷窃 * 网络偷听 如果从客户端向服务器以纯文本形式传递身份验证凭证,在同一网络的主机上具有初级的网络监测软件的攻击者就可以捕捉通信并获得用户名和密码。 防止网络偷听的对策包括: 1、使用不通过网络传输密码的身份验证机制,如Kerberos协议或Windows身份验证。 2、如果必须通过网络传输密码,则需确必威体育官网网址码已加密,或使用已加密的通讯通道,如SSL。 * 强力攻击 强力攻击依赖计算能力来解开哈希密码或其他使用了哈希和加密的机密。为减少这种危险,请使用强密码。 * 字典攻击 此攻击用于获取密码。多数密码系统不存储纯文本密码或加密的密码。它们避免使用加密的密码,因为泄漏的密钥会危及数据存储区中所有密码的安全。丢失密钥则意味着所有的密码都未通过验证。 多数用户存储实现具有密码哈希(或摘要)。根据用户提供的密码值重新计算哈希并将其与数据库中存储的哈希值进行比较,来对用户进行身份验证。如果攻击者设法获得哈希密码列表,则会使用强力攻击来破解密码哈希。 * 字典攻击 在字典攻击中,攻击者使用程序来重述字典中的所有词(或采用多种语言的多个字典)并计算每个词的哈希。生成的哈希与数据存储区中的值进行比较。可以快速破解弱密码,如“Yankees”(一个受欢迎的团队)或“Mustang”(一种受欢迎的车)。较强密码(如“?YouLlNevaFiNdMeyePasSWerd!”)被破解的可能性较小。 注意:一旦攻击者获得了密码哈希列表,则可以脱机执行字典攻击,而且并不要求与应用程序交互。 * 字典攻击 防止字典攻击的对策包括: 1、使用强密码,此强密码应该复杂,不是常规单词,且包含混用大写、小写、数字和特殊字符。 2、在用户存储区中存储不可还原的密码哈希。还要在密码哈希中包含一个Salt值(一个加密性强的随机数字)。

文档评论(0)

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

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

1亿VIP精品文档

相关文档