WEB三大攻击之—SQL注入攻击与防护

 

From:https://www.daguanren.cc/post/sql-injection.html

 

 

SQL注入的定义与诱因

定义

SQL攻击(英语:SQL injection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。

只要是支持批处理SQL指令的数据库服务器,都有可能受到此种手法的攻击。

诱因

在应用程序中若有下列状况,则可能应用程序正暴露在SQL Injection的高风险情况下:

  • 在应用程序中使用字符串联结方式组合SQL指令。
  • 在应用程序链接数据库时使用权限过大的账户(例如很多开发人员都喜欢用最高权限的系统管理员账户(如常见的root,sa等)连接数据库)。
  • 在数据库中开放了不必要但权力过大的功能(例如在Microsoft SQL Server数据库中的xp_cmdshell延伸预存程序或是OLE Automation预存程序等)
  • 太过于信任用户所输入的数据,未限制输入的字符数,以及未对用户输入的数据做潜在指令的检查。

下面的GIF展示的是SQL注入的示意:

sql-injection

代码解释

假设某个网站的登录验证的SQL查询代码为

SELECT * FROM `user` WHERE (username = 'username') and (password = 'password');

如果恶意将username和password传入的值设置为:

username = '1' OR '1'='1';
password = '1' OR '1'='1';

即为:

SELECT * FROM user WHERE (username = '1' OR '1'='1') and (password = '1' OR '1'='1');

由于OR 1=1 总是为真(true),原SQL语句等同于:

SELECT * FROM user;

SQL注入的危害与防护

危害

  1. 数据表中的数据外泄,例如个人机密数据,账户数据,密码等。
  2. 数据结构被黑客探知,得以做进一步攻击(例如SELECT * FROM sys.tables)。
  3. 数据库服务器被攻击,系统管理员账户被窜改(例如ALTER LOGIN sa WITH PASSWORD='xxxxxx')。
  4. 获取系统较高权限后,有可能得以在网页加入恶意链接、恶意代码以及XSS等。
  5. 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如xp_cmdshell "net stop iisadmin"可停止服务器的IIS服务)。
  6. 破坏硬盘数据,瘫痪全系统(例如xp_cmdshell "FORMAT C:")。

防护

  1. 在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。
  2. 在组合SQL字符串时,先针对所传入的参数作字符取代(将单引号字符取代为连续2个单引号字符)。
  3. 使用其他更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件。
  4. 使用SQL防注入框架开发。

参考资料

  • 维基百科SQL注入
  • w3schools的SQL_Injection

本文链接:https://www.daguanren.cc/post/sql-injection.html

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Yoshua Bengio团队通过在网络「隐藏空间」中使用降噪器以提高深度神经网络的「鲁棒性」...

原文来源:arXiv 作者:Alex Lamb、Jonathan Binas、Anirudh Goyal、Dmitriy Serdyuk、Sandeep Subramanian、Ioannis Mitliagkas、Yoshua Bengio「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA导语:深度神经网络在各种各样的重要任…

在视图中显示InActive记录

最近很多朋友(Andrew、BENEN1)都在问如何让Lookup显示InActive记录,研究后发现可以通过Plugin来实现这样的功能,MSCRM真是无所不能,没有做不到,只有想不到!实现步骤:一、自定义实体->工程项目->表单和视图->查找视图->…

计算机网申兴趣爱好怎么写,网申简历中的特长爱好到底怎么写

原标题:网申简历中的特长爱好到底怎么写?2017年安徽农商银行招聘920人报名已经进行了几天了.在报名的过程中,有很多小伙伴不知道网申时的特长爱好怎么写.那么,不论是在网申还是在求职过程中的简历特长爱好到底要怎么写呢?加备考群 免费领资料 626394893下…

OpenAI 发布通用人工智能研究纲领:以全人类的名义承诺

作者:杨晓凡近期 Facebook 泄露用户数据、针对性影响用户、Uber 无人车事故,以及全球学者联名抵制韩国开发自主武器的事情再次敲响了人工智能安全的警钟。OpenAI 也于昨日发表了一份自己的研究纲领, 表明了自己的科研使命和行动法则&#xff…

基于深度学习的性别识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 GoogLeNet网络结构 4.2. 基于GoogLeNet的性别识别算法 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..............................…

李飞飞:让机器有分辨事物的“眼睛”

来源:中国新闻网很难有一项科技的发展像人工智能一样令人既期待又不安。若机器拥有了“自主意识”,人类将面对一个怎样的世界?在各类科幻作品中,人们的探讨层出不穷。和天马行空的文学想象不同,有着“AI女神”之称的华…

Java Web开发技术详解~MIME类型

MIME(Multipurpose Internet Mail Extension)是指多用途网络邮件扩展协议,这里的邮件不单纯值E-Mail,还可以包括通过各种应用层协议在网络上传输的数据。 遵守MIME协议的数据类型统称为MIME类型。在HTTP请求头和HTTP响应头中都有一…

Microsoft Visual Studio Code

Microsoft Visual Studio Code 中文手册:https://code.visualstudio.com/docs 官方快捷键大全:https://code.visualstudio.com/docs/customization/keybindings 第一次使用 VS Code 时你应该知道的一切配置:https://zhuanlan.zhihu.com/p/62…

利用HoloLens进行无人船舶驾驶!微软日本概念视频

来源:新浪游戏,AR联盟等平台微软日本公司最近推出一个新的概念视频,它展示了HoloLens将如何在相对不久的将来用于自动船舶驾驶上。尽管HoloLens主要是面向开发者和研究人员,但这项设备是站在向我们展示AR潜能的最前沿。最新的例子…

teamviewer企业版 添加计算机,teamviewer添加常用控制电脑列表的操作步骤

最近有不少的teamviewer用户们,会询问小编怎么teamviewer今日在这篇文章内小编就为你们带来了teamviewer添加常用控制电脑列表的操作步骤。teamviewer添加常用控制电脑列表的操作步骤首先我们注册一个TeamViewer账号:当我们注册账号后在右边登陆&#xf…

Spring Data JPA 从入门到精通~@EntityListeners注解示例

被Prepersist注解的方法 ,完成save之前的操作。 被Preupdate注解的方法 ,完成update之前的操作。 被PreRemove注解的方法 ,完成remove之前的操作。 被Postpersist注解的方法 ,完成save之后的操作。 被Postupdate注解的方法 &#…

干货|重磅发布:人工智能行业应用价值报告(PDF报告下载)

来源:机器人大讲堂报告下载:https://pan.baidu.com/s/1QEUOHqhQvxs9hEY6NLzPPg未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评…

ubuntu修改键盘映射

ubuntu修改键盘映射 通过xmodmap -pk 命令找到右shift键得keycode,打算将右shift映射到我笔记本的等号键去,因为笔记本上的等号键还具有加号键得功能,所以需要以下命令: xmodmap -e “keycode 62 equal plus” 62是右shift的keyc…

全球卫星导航 看中国“北斗”

来源:光明日报 作者:袁于飞2017年12月3日,第四届世界互联网大会世界互联网领先科技成果发布活动在浙江乌镇举行,中国卫星导航系统管理办公室主任冉承其介绍北斗卫星导航系统。新华社记者 孟鼎博摄3月30日,我国在西昌卫…

逻辑思维强的人适合学计算机不,逻辑思维强的人适合什么工作?

逻辑思维强的人适合什么工作?逻辑思维题内容:逻辑思维是人的理性认识阶段,人运用概念、判断、推理等思维类型反映事物本质与规律的认识过程。是人们将感性认识提升为理性认识的必要能力。那么逻辑思维强的人适合什么工作呢?逻辑性强的人适合做什么1.逻…

ADSL 拨号代理的搭建

From:崔庆才 - 轻松获得海量稳定代理!ADSL拨号代理的搭建 我们尝试维护过一个代理池。代理池可以挑选出许多可用代理,但是常常其稳定性不高、响应速度慢,而且这些代理通常是公共代理,可能不止一人同时使用,…

用AlphaGo设计材料合成实验

来源:曾林的科学网博客AlphaGo下围棋连挫顶尖高手最终孤独求败的故事几乎家喻户晓。这也引发了大家对人工智能的能力的广泛思考。在科学研究领域,比如说合成实验设计,传统的做法不外乎是依靠经验不断的尝试。纵然会有一些热力学基本规律作为指…

app store 服务器维护,AppStore无法连接怎么办?几个小方法教你解决问题

原标题:AppStore无法连接怎么办?几个小方法教你解决问题苹果用户都知道,AppStore我们下载应用的地方,无论是自带软件还是第三方软件都能在这里找到。但是有时候我们会遇上AppStore无法理解的问题!简单来说,…

Python Twisted 介绍

Python Twisted介绍:http://blog.csdn.net/hanhuili/article/details/9389433 原文链接:http://www.aosabook.org/en/twisted.html 作者:Jessica McKellar Twisted 是用 Python 实现的 基于事件驱动 的 网络引擎框架,即一个 网络…

基于互联网大脑架构的阿里巴巴未来趋势分析【系列2】

作者 刘锋 《互联网进化论》作者,计算机博士前言在计算机科学中,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调…