广告
返回顶部
首页 > 资讯 > 精选 >防止web项目中的SQL注入方法有哪些
  • 692
分享到

防止web项目中的SQL注入方法有哪些

2023-06-21 22:06:57 692人浏览 泡泡鱼
摘要

这篇文章主要介绍“防止WEB项目中的sql注入方法有哪些”,在日常操作中,相信很多人在防止web项目中的SQL注入方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”防止web项目中的SQL注入方法有哪些

这篇文章主要介绍“防止WEB项目中的sql注入方法有哪些”,在日常操作中,相信很多人在防止web项目中的SQL注入方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”防止web项目中的SQL注入方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    一、SQL注入简介

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库

    二、SQL注入攻击的总体思路

    • 寻找到SQL注入的位置

    • 判断服务器类型和后台数据库类型

    • 针对不同的服务器和数据库特点进行SQL注入攻击

    三、SQL注入攻击实例

    比如在一个登录界面,要求输入用户名和密码:

    可以这样输入实现免帐号登录:

    用户名: ‘or 1 = 1 –

    密 码:

    点登陆,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了.(当然现在的有些语言的数据库api已经处理了这些问题)

    这是为什么呢? 下面我们分析一下:

    从理论上说,后台认证程序中会有如下的SQL语句:

    String sql = "select * from user_table where username=' "+userName+" ' and passWord=' "+password+" '";当输入了上面的用户名和密码,上面的SQL语句变成:SELECT * FROM user_table WHERE username=''or 1 = 1 -- and password=''"""分析SQL语句:条件后面username=”or 1=1 用户名等于 ” 或1=1 那么这个条件一定会成功;然后后面加两个-,这意味着注释,它将后面的语句注释,让他们不起作用,这样语句永远都能正确执行,用户轻易骗过系统,获取合法身份。这还是比较温柔的,如果是执行SELECT * FROM user_table WHEREusername='' ;DROP DATABASE (DB Name) --' and password=''其后果可想而知…"""

    四、如何防御SQL注入

    注意:但凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分,

    对于用户输入的内容或传递的参数,我们应该要时刻保持警惕,这是安全领域里的「外部数据不可信任」的原则,纵观Web安全领域的各种攻击方式,

    大多数都是因为开发者违反了这个原则而导致的,所以自然能想到的,就是从变量的检测、过滤、验证下手,确保变量是开发者所预想的。

    1、检查变量数据类型和格式

    如果你的SQL语句是类似where id={$id}这种形式,数据库里所有的id都是数字,那么就应该在SQL被执行前,检查确保变量id是int类型;如果是接受邮箱,那就应该检查并严格确保变量一定是邮箱的格式,其他的类型比如日期、时间等也是一个道理。总结起来:只要是有固定格式的变量,在SQL语句执行前,应该严格按照固定格式去检查,确保变量是我们预想的格式,这样很大程度上可以避免SQL注入攻击。

    比如,我们前面接受username参数例子中,我们的产品设计应该是在用户注册的一开始,就有一个用户名的规则,比如5-20个字符,只能由大小写字母、数字以及一些安全的符号组成,不包含特殊字符。此时我们应该有一个check_username的函数来进行统一的检查。不过,仍然有很多例外情况并不能应用到这一准则,比如文章发布系统,评论系统等必须要允许用户提交任意字符串的场景,这就需要采用过滤等其他方案了。

    2、过滤特殊符号

    对于无法确定固定格式的变量,一定要进行特殊符号过滤或转义处理。

    3、绑定变量,使用预编译语句

    MySQLMysqli驱动提供了预编译语句的支持,不同的程序语言,都分别有使用预编译语句的方法

    实际上,绑定变量使用预编译语句是预防SQL注入的最佳方式,使用预编译的SQL语句语义不会发生改变,在SQL语句中,变量用问号?表示,黑客即使本事再大,也无法改变SQL语句的结构

    到此,关于“防止web项目中的SQL注入方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: 防止web项目中的SQL注入方法有哪些

    本文链接: https://www.lsjlt.com/news/301197.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 防止web项目中的SQL注入方法有哪些
      这篇文章主要介绍“防止web项目中的SQL注入方法有哪些”,在日常操作中,相信很多人在防止web项目中的SQL注入方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”防止web项目中的SQL注入方法有哪些...
      99+
      2023-06-21
    • 防止web项目中的SQL注入
      目录一、SQL注入简介二、SQL注入攻击的总体思路三、SQL注入攻击实例四、如何防御SQL注入1、检查变量数据类型和格式2、过滤特殊符号3、绑定变量,使用预编译语句小结:一、SQL注...
      99+
      2022-11-12
    • 防止SQL注入的方法有哪些
      防止SQL注入的方法有:采用PreparedStatement进行预编译,sql语句在执行的过程中效率比Statement要高,例如:String sql = "select* from users where...
      99+
      2022-10-21
    • java防止sql注入的方法有哪些
      java防止sql注入的方法有:采用PreparedStatement进行预编译,sql语句在执行的过程中效率比Statement要高,例如:String sql = "select* from users wher&#...
      99+
      2022-10-07
    • php防止sql注入的方法有哪些
      1. 使用预处理语句和绑定参数:使用PDO或mysqli扩展来执行SQL查询,使用预处理语句和绑定参数的方式来防止SQL注入。预处理...
      99+
      2023-08-23
      php sql
    • 防止sql注入的方式有哪些
      这篇文章主要讲解了“防止sql注入的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“防止sql注入的方式有哪些”吧!  防止SQL注入的方式有:执行...
      99+
      2022-10-18
    • Java项目防止SQL注入的几种方法总结
      目录一、什么是SQL注入?二、Java项目防止SQL注入方式1、PreparedStatement防止SQL注入2、mybatis中#{}防止SQL注入3、对请求参数的敏感词汇进行过...
      99+
      2023-05-16
      java防止SQL注入 java防sql注入代码 java sql注入
    • java防止sql注入的方式有哪些
      Java防止SQL注入的方式有以下几种:1. 使用参数化查询(Prepared Statement):使用PreparedState...
      99+
      2023-08-23
      java sql
    • Java项目防止SQL注入的方式总结
      目录 一、什么是SQL注入? 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入 ...
      99+
      2023-09-03
      java nginx mybatis
    • web安全之防止SQL注入的方法
      小编给大家分享一下web安全之防止SQL注入的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL注入,就是通过把SQL命令...
      99+
      2022-10-18
    • 防止SQL注入的实现方式有哪些
      今天就跟大家聊聊有关防止SQL注入的实现方式有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、SQL注入简介SQL注入是比较常见的网络攻击方式...
      99+
      2022-10-18
    • 防范sql注入的方法有哪些
      这篇文章主要介绍防范sql注入的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!防止SQL注入的方式有:执行sql语句时使用addslashes进行sql语句转换,过滤掉sq...
      99+
      2022-10-18
    • SQL注入的防御方法有哪些
      这篇文章主要介绍了SQL注入的防御方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SQL注入的防御方法有哪些文章都会有所收获,下面我们一起来看看吧。限制数据类型在传入参数的地方限制参数的类型,比如整型 ...
      99+
      2023-07-02
    • 如何有效防止sql注入的方法
      SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部分程序员在...
      99+
      2022-11-12
    • Python中防止sql注入的方法详解
      前言 大家应该都知道现在web漏洞之首莫过于sql了,不管使用哪种语言进行web后端开发,只要使用了关系型数据库,可能都会遇到sql注入攻击问题。那么在Python web开发的过程中sql注入是怎么出现的...
      99+
      2022-06-04
      详解 方法 Python
    • sql注入攻击的防范方法有哪些
      今天小编给大家分享一下sql注入攻击的防范方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
      99+
      2022-12-27
      sql
    • php sql注入的方法有哪些
      SQL注入是一种常见的网络安全漏洞,攻击者利用此漏洞可以执行恶意SQL语句,从而获取敏感数据或者对数据库进行修改。以下是一些常见的P...
      99+
      2023-08-23
      php sql
    • SQL注入中文件读写的方法有哪些
      这篇文章主要介绍了SQL注入中文件读写的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、MySQL读文件常见的读文件,可以用16...
      99+
      2022-10-18
    • react项目中引入图片的方法有哪些
      这篇文章主要介绍了react项目中引入图片的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。img标签引入图片因为react其实是通过js的reader函数渲染的页面...
      99+
      2023-06-15
    • gitee中更新项目的方法有哪些
      这篇文章主要介绍了gitee中更新项目的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇gitee中更新项目的方法有哪些文章都会有所收获,下面我们一起来看看吧。第一步:克隆项目在更新Gitee项目之前,...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作