专栏首页网站漏洞修复网站漏洞修复方案防止SQL注入攻击漏洞

网站漏洞修复方案防止SQL注入攻击漏洞

SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp、.net、PHP、java、等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞?

SQL注入漏洞测试方法

在程序代码里不管是get提交,post提交,cookies的方式,都可以有随意控制参数的一个参数值,通过使用sql注入工具,经典的sqlmap进行检测与漏洞利用,也可以使用一些国内的SQL代码注入工具,最简单的安全测试方法就是利用数据库的单引号, AND 1=1 AND 1=2等等的字符型注入来进行测试sql注入漏洞。

SQL注入漏洞解剖

在网站的程序代码里,有很多用户需要提交的一些参数值,像get、post的数据提交的时候,有些程序员没有对其进行详细的安全过滤,导致可以直接执行SQL语句,在提交的参数里,可以掺入一些恶意的sql语句命令,比如查询admin的账号密码,查询数据库的版本,以及查询用户的账号密码,执行写入一句话木马到数据库配置文件,执行系统命令提权,等等.

SQL注入漏洞修复

在最底层的程序代码里,进行sql漏洞修补与防护,在代码里添加过滤一些非法的参数,服务器端绑定变量,SQL语句标准化,是防止网站被sql注入攻击的最好办法。Sine安全公司是一家专注于:网站安全、服务器安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。

一、程序代码里的所有查询语句,使用标准化的数据库查询语句API接口,设定语句的参数进行过滤一些非法的字符,防止用户输入恶意的字符传入到数据库中执行sql语句。

二、对用户提交的的参数安全过滤,像一些特殊的字符(,()*&……%#等等)进行字符转义操作,以及编码的安全转换。

三、网站的代码层编码尽量统一,建议使用utf8编码,如果代码里的编码都不一样,会导致一些过滤被直接绕过。

网站的数据类型,必须确定,是数字型,就是数字型,字符型就是字符型,数据库里的存储字段类型也设置为ini型。

对用户的操作权限进行安全限制,普通用户只给普通权限,管理员后台的操作权限要放开,尽量减少对数据库的恶意攻击。

网站的报错信息尽量不要返回给客户端,比如一些字符错误,数据库的报错信息,尽可能的防止泄露给客户端。

如果对网站程序代码不熟悉的话建议交给专业做安全的公司专业处理,国内推荐Sinesafe,绿盟,启蒙星辰。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网站安全公司对于网站逻辑漏洞的修复方案分享

    在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭...

    网站安全专家
  • 怎么修复网站漏洞 骑士cms的漏洞修复方案

    骑士CMS是国内公司开发的一套开源人才网站系统,使用PHP语言开发以及mysql数据库的架构,2019年1月份被某安全组织检测出漏洞,目前最新版本4.2存在高危...

    网站安全专家
  • 网站安全公司告诉你网站为何会被黑

    用一些自动化技术的专用工具来扫描一些普遍开源代码版本号系统漏洞,例如dede,phpweb,discuz这些旧版常有一些管理权限各不相同的系统漏洞,有的软件能够...

    网站安全专家
  • 树莓派4上使用uboot+tftp调试rt-thread程序

    因为嵌入式往往需要把程序放到板子上去运行,而再树莓派上做rt-thread开发调试的时候,通常有三种办法。

    bigmagic
  • 解释JavaScript中的闭包

    去年我写了一篇“closures的简介”,它的目的是帮助大家理解‘什么是闭包,闭包是如何工作的’。现在我尝试从另外一个不同的角度去阐释闭包。有了这些基本的概念,...

    lesM10
  • 行业领导者所关注的云计算问题

    为了收集有关当前和未来云计算状态的见解,行业媒体与来自33家企业的IT主管讨论了他们及其客户关于云计算的使用情况。

    静一
  • 谈谈堆与栈:数据结构和内存角色

    堆包含一个链表来维护已用和空闲的内存块。在堆上新分配(用 new 或者 malloc)内存是从空闲的内存块中找到一些满足要求的合适块,这个操作会更新堆中的块链表...

    江不知
  • 大数据--kafka学习第一部分 Kafka架构与实战

    每个集群都有一个broker是集群控制器(自动从集群的活跃成员中选举出来) 控制器负责管理工作: 将分区分配给broker 监控broker 集群中一个...

    用户2337871
  • 对比Vector、ArrayList、LinkedList有何区别?不同容器类型适合的场景?

    Verctor是 Java 早期提供的线程安全的动态数组,如果不需要线程安全,并不建议选择,毕竟同步是有额外开销的。Vector 内部是使用对象数组来保存数据,...

    葆宁
  • 【Java】12 Map 集合

       Map 用于保存具有映射关系的数据,因此 Map 集合里保存着两组值,一组值用于保存 Map 里的 key,另外一组值用于保存 Map 里的 value,...

    Demo_Null

扫码关注云+社区

领取腾讯云代金券