Web安全漏洞之SQL注入的原理及修复方案

talklee

温馨提示:这篇文章已超过1001天没有更新,请注意相关的内容是否还可用!

今天在聊聊Web一些常见的安全防范措施,比如sql注入,可能很多人会很奇怪为什么最近都是一些Web安全防护之类的文章,因为我之前未涉及到这些问题,基本都是系统或者程序框架已经完善了这些内容,只是最近接触的项目很多都涉及安全防护领域,所以遇到了这些问题就简单记录下,不一定什么时候就用到了,免费到时候慌慌张张,无从下手。

Web安全漏洞之SQL注入的原理及修复方案 第1张

sql注入原理

sql注入原理就是用户输入动态的构造了意外sql语句,造成了意外结果,是攻击者有机可乘。

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:

①不当的类型处理;

②不安全的数据库配置;

③不合理的查询集处理;

④不当的错误处理;

⑤转义字符处理不合适;

⑥多个提交处理不当。

Web安全漏洞之SQL注入的原理及修复方案 第2张

sql注入危害

数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。

网页篡改:通过操作数据库对特定网页进行篡改。

网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。

数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。

服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。

破坏硬盘数据,瘫痪全系统。

sql注入解决方案

1.参数验证

2.特殊字符过滤

3.使用参数化语句,不要拼接sql

4.编码输出

5.平台过滤

总之就是要做好过滤与编码并使用参数化语句,这样sql注入漏洞基本能够解决,都是些建议方案,没有具体的教程,因为程序不一样,所以代码也不可能一致,就算是抛砖引玉,指引下方向,然后思路去排查和解决具体的方案,好了,记录文章仅供参考而已!

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,5885人围观)

还没有评论,来说两句吧...

目录[+]