牛腩新闻SQL注入

     在看牛腩视频的时候觉得好神奇呀,老师怎么可以在看到的界面上直接用一条带有SQL语句的字符串在向数据库插入一条记录的同时还删去了一条记录,我顿时很惊讶,这个是怎么实现的呀?它是基于什么样的原理呢?

     在后来的讲解中,老师解说道是利用SQL注入做到的。对于SQL注入这个大名还真是如雷贯耳。以前只是知道这个名词但是具体是什么就完全不知道了。经过学习才发现原来SQL注入其实挺好理解的。SQL注入,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。在视频里面老师就是用了一句“娱乐新闻')delete from categorywhere id=3--”然后就成功的进入了我的数据库,而且成功进行了非法操作。

    那我们作为软件的开发人员,肯定是不希望自己的数据库曝露在人民大众的眼皮子底下,那样我们的数据就会被人利用,那我们该如何避免SQL注入呢?

 那我们现就需要了解SQL注入产生的具体原因是什么?查了一些资料得知,根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。产生原因如下:不当的类型处理,不安全的数据配置,不合理的查询集处理,不当的错误处理,转义字符处理不合适,多个提交处理不适。

     那么在视频中老师是用的平台层注入,后来进过代码的分析,原来老师在实现的过程中利用了数据库操作是由字符串拼接而成,至于SQL注入是如何知道是哪张表,那就是另外一回事了,不过可以肯定的说就是肯定存在许多的方法。

我们应该如何防护:

1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号

双"-"进行转换等。

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

SQL注入技术主要有以下几点:

1、强制产生错误2、采用非主流通道技术3、使用特殊的字符4、使用条件语句5、利用存储过程6、避开输入过滤技术

7、推断技术

知道了SQL注入技术,那我们该如何避免呢?归纳一下,主要有以下几点:

1、加密处理2、存储过程来执行所有查询(牛腩后面有讲过存储过程,可以关注我,)3、使用专业的漏洞扫描工具4、确保数据库安全5、安全审批

上面的这些东西你能看明白吗?目前以我的水平这个我是真的没有很深的感受就权当一个了解,但是我感触深刻的就是老师用例子给我们展示在SQLHelper里面使用参数paras来防止SQL注入的方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值