热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Sql语句密码验证的安全漏洞

Sql语句作为国际尺度的数据库查询语句,在各种编程环境中得到了广泛的利用。作为一个成熟、稳固的系统,用户登陆和密码验证是必不可少的。Sql语句作为国际尺度的数据库查询语句

        Sql语句作为国际尺度的数据库查询语句,在各种编程环境中得到了广泛的利用。作为一个成熟、稳固的系统,用户登陆和密码验证是必不可少的。

Sql语句作为国际尺度的数据库查询语句,在各种编程环境中得到了广泛的利用。作为一个成熟、稳固的系统,用户登陆和密码验证是必不可少的。笔者在平时的编程工作中发明,很多程序员在用sql语句进行用户

  密码验证时是通过一个类似这样的语句来实现的:

  Sql="Select * from 用户表 where 姓名='" name "' and 密码='" password "'"

  其中name和password是存放用户输进的用户名和口令,通过履行上述语句来验证用户和密码是否正当有效。但是通过火析可以发明,上述语句却存在着致命的漏洞。当我们在用户名称中输进下面的字符串时:111'or'1=1,然后口令随便输进,我们设为aaaa。变量代换后,sql语句就变成了下面的字符串:

  Sql="Select * from 用户表 where 姓名='111'or'1=1' and 密码='aaaa'

  我们都知道select语句在判定查询条件时,碰到或(or)把持就会疏忽下面的与(and)把持,而在上面的语句中1=1的值永远为true,这意味着无论在密码中输进什么值,均能通过上述的密码验证!这个标题的解决很简略,方法也很多,最常用的是在履行验证之前,对用户输进的用户和密码进行正当性判定,不答应输进单引号、等号等特别字符。

  上述标题固然看起来简略,但确实是存在的。例如在互联网上很著名气的网络游戏"笑傲江湖 "的早期版本就存在着这样的标题,笔者也是在看了有关此游戏的漏洞报告后才仔细分析了自己以前编写的一些程序,竟然有不少也存在着这样的漏洞。这确实应当引起我们的留心。这也***露出包含笔者在内的年青程序员在编程经验和安全意识上的不足。同时也提示我们编程工作者在程序设计时应当充分考虑程序的安全性,不可有半点马虎,一个看似很小的疏漏可能就会造成很严重的成果。




推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • Java多重继承的替代方案及设计考量
    本文探讨了Java为何不支持多重继承,并深入分析了其背后的原理和替代方案。通过理解Java的设计哲学,开发者可以更好地利用接口和其他特性来实现复杂的类结构。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • 了解如何通过设置和调整交易限额来增强信用卡使用的安全性,保障资金安全。 ... [详细]
  • PC时代的传奇人物
    回顾过去几十年,个人电脑(PC)的发展历程犹如一部英雄史诗。每一位杰出人物都在这一领域留下了不可磨灭的印记,他们的贡献不仅推动了技术的进步,也深刻影响了现代社会的发展。 ... [详细]
author-avatar
XIE绍雄
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有