sql注入了解一下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hejingfang123/article/details/80644004

背景

       最近小编加入了测试,在一次提bug的时候提出了一个关于文本框输入限制的问题,结果被告知涉及到了sql注入的问题,然后让我对这方面了解一下。说实话,在这之前,压根就不知道啥是sql注入,如果您也不知道,那么就由小编带大家一起来了解一下吧!

基础知识

       所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.

                                                                                                                                                   (以上来自百度百科)

(1)原理

       通俗的理解,sql注入就是通过,特殊的输入作为参入传入应用程序,这些输入大多是sql语法里的一些组合,通过执行这些语句而实现攻击者所要的操作,能被sql注入的程序是因为没有细致过滤用户输入数据,举个简单的栗子,就像我测试时提出的没有限制文本框输入。

(2)攻击

当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。

如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。

总之,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。

(3)防护

1.永远不要信任用户的输入。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。
6.sql注入的检测方法一般采取辅助软件或网站平台来检测。

       小编也是第一次接触这个东西,所以只是大概做个了解,以上大都来自百度百科,更多信息(注入方法、sql注入技术、sql注入防范,语句特征)请参考sql注入_百度百科

https://baike.baidu.com/item/sql%E6%B3%A8%E5%85%A5/150289?fr=aladdin

       小编在测试过程中尝试过用注入的方法进行sql注入,但是由于只掌握了一丢丢皮毛,没能测试成功。如果看此篇博客的您恰好了解这方面的内容,请多多指教,大神,抱大腿!

猜你喜欢

转载自blog.csdn.net/hejingfang123/article/details/80644004
今日推荐