芜湖网站开发

芜湖网站开发公司

芜湖网站建设Web常见的安全漏洞

发布于:2019/6/19 阅读()次 标签:芜湖网站建设

芜湖网站建设

众所周知黑客入侵网站的危害有多大,造成此后果的就是Web开发中的一类常见的安全漏洞,其为SQL注入攻击(SQL Injection),简称注入攻击。外站利用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。这么严重的攻击如果我们不能及时的发现并修复,后果不堪设想。所以接下来就让我们来了解下为什么会被攻击?怎么去预防攻击呢?

一、造成SQL注入的原因

网站程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码, 程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。但很多Web开发者没有意识到SQL查询是可以被篡改的,从而把SQL查询当作可信任的命令。殊不知,SQL查询是可以绕开访问控制,从而绕过身份验证和权限检查的。更有甚者,有可能通过SQL查询去运行主机系统级的命令。

二、那应如何预防SQL注入?

其重点在于及时对用户提交的信息进行安全检测。对于网站开发者来说, 永远不要信任用户输入的内容, 不要对用户提交的信息全盘接收, 必须对用户输入信息进行过滤, 判断和检测。以下将详细介绍下预防的相应措施:

1、严格限制Web应用的数据库的操作权限

给用户提供仅能满足其工作的最低权限,能最大限度的减少注入攻击对数据库的危害。

2、严格限制变量的类型

检查输入的数据是否具有所期望的数据格式,例如使用regexp包进行一些匹配处理,或者使用strconv包对字符串转化成其他基本类型的数据进行判断。

3、数据库的特殊字符进行转义处理,或编码转换。

比如(’”尖括号&*;等)特殊字符转义处理,或编码转换。

4、使用数据库提供的参数化查询接口

所有的查询语句建议使用数据库提供的参数化查询接口。参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中, 比如Java中的PrepareStatement。

5、使用专业的SQL注入检测工具进行检测

在网站正式发布之前,利用工具检测及时修补被发现的SQL注入漏洞,减少损失。网上有很多这方面的开源工具,例如sqlmap、SQLninja等。

6、避免网站打印出SQL错误信息

比如类型错误、字段不匹配等,把代码里的SQL语句暴露出来,以防止攻击者利用这些错误信息进行SQL注入。

Web常见安全漏洞-SQL注入

综上所述,SQL注入是危害相当大的安全漏洞。所以在我们平常编写的Web应用过程中,应充分重视每个建设的小细节,学会利用资源“防患于未然”。


上一篇:芜湖网站关键词如何优化且稳定在首页

下一篇:芜湖网站建设常用的nth-child使用方法