使用QueryTokenization来检测和防止SQL注入攻击.docVIP

使用QueryTokenization来检测和防止SQL注入攻击.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用QueryTokenization来检测和防止SQL注入攻击

使用Query Tokenization 来检测和防止SQL注入攻击 抽象的当使用动态查询,有大量的 机会,使用者可以在查询中注入一些额外陈述,可能会导致不同的数据库的请求。 SQL注入构成的数据或意思 信息可以从数据库中被偷走。大多数 应用程序设计的方式,对数据的 从数据库是通过用户输入。攻击者可以 在原始的SQL注入查询和获取,更改或查看他的数据没有权限。我们的宗旨研究是开发一种方法,发现和防止的SQL 通过检查用户输入是否注入攻击的原因 更改在查询的预期的结果。我们提出了一个方法 使用查询来检测SQL注入攻击的标记化 这是实施的QueryParser方法。当 SQL注入攻击者正在他应该使用一 空间,单引号或在其输入双破折号。我们的方法 原始查询的tokenizing组成,并与注射查询 另外,标记化是通过检测到的空间, 单引号或双破折号和所有字符串在每次 符号构成的标记。令牌后都形成 您的阵列,每个令牌是元素阵列。两个数组造成的原件查询和 注射查询,得到他们的长度和 比较,以查明是否有注射与否。作为 因此,对数据的访问可以被授予或拒绝后 该数组的长度是相同的或不同的分别。 I 、 说明 SQL注入攻击是对任何数据库驱动的威胁 应用程序和网站。 参考文献[一]指出,当一个网络和主机 水平的切入点是充分担保,公共接口 由一个应用程序公开成为攻击的唯一来源。 SQL注入攻击可以使用的人谁不想 可以访问的数据库,窃取,更改或删除数据 他们没有权限。 参考文献[2]表示,研究人员提出 不同的技术来提供一个SQL注入攻击的解决方案(的SQL 注入攻击),但其中的许多解决方案都 限制,影响其有效性和实用性我们的研究和探讨了检测方法 针对SQL注入保护,这方法包括 tokenizing原查询和注射一 此外,每一个标记后构成指数 数组和fmally两个阵列的形成。一旦 对两个数组的长度进行了比较, 可以断定是否有或没有注入: 如果两个数组的长度是一样的,没有注射 否则有注射。在动态查询,事实 用户输入可能导致生成的数组的长度不 顺应原来的查询之一,因此在 系统得出的结论是,最后一个SQL注入 对数据的访问被拒绝。 我们的做法是由一个QueryParser方法 标记化,便于查询,这揭示 是否有注射与否。该QueryParser方法 将讨论以下部分。 引入后,与名称第二节(相关 工作)如下。本节讨论不同方式的SQL 注射可以做到的。第二节后,下一节 命名(我们的方法)如下,它在我们的方法探讨 细节。最后,我们结束我们的第四节和第五节工作 (结论和参考文献分别)。II、相关工作 根据文献[3],SQL注入攻击时当从一个用户输入包括SQL关键字,所以 动态生成SQL查询更改预定功能的应用程序中的SQL查询。在为所有类型的SQL注入事实,也没有办法有人可以执行不插入空格注射,单引号或查询中的双破折号。我们的用户没有可以执行单引号注入,当用户输入的类型是数字,例如,下面的查询注射可做到不使用单引号:由学生选择其中UserID 1*00;该注射液可以做这样的:由学生选择其中UserID 100or*1 1;之间的空间100和没有或不防止查询检索所有学生的信息,但是之间的空间或和第一个我是因为在强制的情况下一个语法错误的结果。对于用户类型的字符输入,有必要使用单引号。在下面的例子中,使用单引号是必要的,否则有语法错误。选择*从学生其中UserID Chooi保持;该注射液可以做这样的:从学生选择*其UserID Chooi保持或1 1;为Chooi保持的单引号和一间或空间和第一个我是必要的。该注入也可以通过插入双破折号在查询。在SQL中,双破折号是用来增加在查询的回应,因此攻击者可以插入双在查询破折号,使后为注释的一部分。这是强调柯伟,米Muthuprasanna和苏拉杰科塔里说,字符- -标记的开始在SQL注释一切之后被忽略[4]。这下面的例子说明其中的攻击者使用作为一个SQL注入双破折号。选择*从学生其中UserID CHOO1;- 和标志着“50;在; -是一个攻击者注入。简言之,如果攻击者试图使一个注入攻击对任何查询,他(她)一定要使用在他的输入单引号,空格或破折号否则注射不能成功或失败,可以查询语法错误。 参考文献[5]显示了一个表,其中包含了一些例子SQL注入攻击类型。 III、 我们的方法 我们的工作由一个方法的实现该检测到一个单引号,空格或双横线;所有字符串 在单引号之前,在一个空间,或在双破折号构成的标记。所有的标记组合在一起 为使该数组的索引是一个记号。该标记化是为原和查询与注射。在未来,得到的数组进行比较,如果它们的长度不同,打针,否则有被检测没有注射。在图1,图2,图3,图4,原查询和注射查询使用下列标题: ?

您可能关注的文档

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档