网站代码sql注入攻击漏洞修复加固防护措施
Posted websinesafe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站代码sql注入攻击漏洞修复加固防护措施相关的知识,希望对你有一定的参考价值。
什么是SQL注入攻击?
SQL注入是一种网站的攻击方法。它将SQL代码添加到网站前端GET POST参数中,并将其传递给mysql数据库进行分析和执行语句攻击。
如何生成SQL注入漏洞的?
1。网站程序员以及运维技术是不能保证所有的前端输入都被安全效验与拦截过滤。
2。攻击者使用发送到mysql数据库的的参数值构造可执行恶意攻击代码。
3。数据库未配置适当的安全性(请为网站以及APP设置特定的数据库权限的账户,而不是使用服务器的账户或管理员账户来运行)。特定的数据库账户设置读写操作权限,并去掉一些类似于drop的数据库权限)。
SQL注入攻击如何进行防护呢?
一。使用预编译好的指定语句
为了防止SQL注入攻击,用户输入的地方提交POST参数过来不能直接更改。相反,必须过滤或参数化用户输入。参数语句使用程序代码里内置好的,而不是将用户输入的参数值植入到SQL语句中。在大部分的时候,SQL语句都是可以正常运行的。
一般来说,有两种方法可以确保WEB不易受到SQL注入攻击。一种是使用代码检查,另一种是强制使用程序代码里预编译好的语句。预编译好的语句在运行时将拒绝用户前端输入的任何参数值包括伪造的代码。但是,目前很少有网站能做到这个地步。
防止SQL注入,避免详细的错误消息,黑客可以使用这些消息。标准输入验证机制用于验证所有输入数据的长度、类型、语句和企业规则。
使用专业的网站漏洞修复服务商的检测软件。
但是,这不足以防止SQL注入的攻击。黑客可以实现自动搜索和攻击目标。它的黑客技术甚至可以很容易地应用于其他网站当中去。企业网站的运营者应该使用专业的网站漏洞检测软件去检测网站存在哪些SQL注入漏洞,例如像accunetix软件。可以的完美扫描网站当前存在的所有漏洞,可以挖掘SQL注入漏洞。最后,企业在网络应用程序开发过程的所有阶段执行网站源代码的安全检查。
首先,在部署网站上线之前应该进行网站的安全测试,这一点很重要可以避免后期遇到重大的攻击与损失。企业网站在部署完毕后,还应使用网站漏洞检测软件和域名监控工具对网站进行压力与漏洞测试。这就是如何防御SQL注入攻击,如果您对如何防止SQL注入攻击不是太懂的话,建议找专业的网站安全公司来帮您解决漏洞,国内像SINE安全,鹰盾安全,绿盟,启明星辰,深信服都是比较不错的网络安全公司,来防止网站受到SQL注入攻击。
记录一次网站漏洞修复过程:第二轮处理(拦截SQL注入跨站脚本攻击XSS)
在程序编写的时候采用参数化的SQL语句可以有效的防止SQL注入,但是当程序一旦成型,再去修改大量的数据库执行语句并不是太现实,对网页表单上输入进行校验是易于实现的方法。在webForm 页面中开启校验属性:
ValidateRequest="true"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Line.aspx.cs" Inherits="EcospSite.Line" ValidateRequest="true" %>
但是有的时候也不太好使,只能自己编写代码检查用户的输入,如果直接在页面上添加校验,工作量比较大,并且需要很多测试工作,在global.asax 中 添加拦截方法还是比较合适的。
void Application_BeginRequest(object sender, EventArgs e) { string path = this.Request.Path.ToLower(); System.Collections.Generic.List<string> group_sql = new System.Collections.Generic.List<string>();
group_sql.AddRange(new string[] { "a.aspx", "b.aspx", "c.aspx", "d.aspx","e.aspx","f.aspx" });
foreach (string item in group_sql) { if (path.EndsWith(item)) { SQLCheck.CheckQueryParamRequest(this.Request, this.Response); // 检查URL中是否有非法语句 SQLCheck.CheckFormParamRequest(this.Request, this.Response); // 检查表单中是否有非法语句 break; } } }
如果输入没有校验通过,程序丢出异常,跳转到异常处理页面
对于处理 跨站脚本攻击XSS也可以采用同样的处理方式,不过校验的格式可能有所不同,一个是防止执行恶意SQL语句,一个是防止执行恶意脚本。另外在关键页面显示用户输入的地方,最好对内容进行转义处理,保证恶意嵌入的HTML、SCRITP无法执行。
以上是关于网站代码sql注入攻击漏洞修复加固防护措施的主要内容,如果未能解决你的问题,请参考以下文章
网站漏洞检测公司对wordpress sql注入漏洞代码审计与修复