今天在聊聊Web一些常见的安全防范措施,比如sql注入,可能很多人会很奇怪为什么最近都是一些Web安全防护之类的文章,因为我之前未涉及到这些问题,基本都是系统或者程序框架已经完善了这些内容,只是最近接触的项目很多都涉及安全防护领域,所以遇到了这些问题就简单记录下,不一定什么时候就用到了,免费到时候慌慌张张,无从下手。
sql注入原理就是用户输入动态的构造了意外sql语句,造成了意外结果,是攻击者有机可乘。
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:
①不当的类型处理;
②不安全的数据库配置;
③不合理的查询集处理;
④不当的错误处理;
⑤转义字符处理不合适;
⑥多个提交处理不当。
数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
网页篡改:通过操作数据库对特定网页进行篡改。
网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。
1.参数验证
2.特殊字符过滤
3.使用参数化语句,不要拼接sql
4.编码输出
5.平台过滤
总之就是要做好过滤与编码并使用参数化语句,这样sql注入漏洞基本能够解决,都是些建议方案,没有具体的教程,因为程序不一样,所以代码也不可能一致,就算是抛砖引玉,指引下方向,然后思路去排查和解决具体的方案,好了,记录文章仅供参考而已!