SQL注入是目前黑客最常用的攻击手段,它的原理是利用数据库对特殊标识符的解析强行从页面向后台传入。改变SQL语句结构,达到扩展权限、创建高等级用户、强行修改用户资料等等操作。 
那怎么判断是否被SQL注入了呢? 
通过SQL注入的原理我们知道,判断SQL注入可以通过页面传入的数据,后台不应该相信从后台传入的任何数据特别是特殊整型参数和特殊字符参数! 
防止SQL注入其实也很简单 
1.检查变量数据类型和格式 
只要是固定格式的变量,在SQL语句执行前,应该严格按照固定格式检查,确保变量是我们预想的格式! 
2.过滤特殊符号 
对于无法确定固定格式的变量,一定要进行特殊符号过来或转移处理,一面之星SQL时有歧义。 
当我们上传图片的时候

enctype=\”multipart/form-data\”
enctype=”multipart/form-data”
  • 1
  • 2
  • 1
  • 2

没有“/“,表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,进行下面的操作. 
3.绑定变量,使用预编译语句 
实际上,绑定变量使用预编译语句是预防SQL注入的最佳方法,使用预编译的SQL语句语义不会发生改变。在SQL语句中,变量用问号?表示,黑客即使本事再大,也无法改变SQL语句的格式,从根本上杜绝了SQL注入攻击的发生。 
4.数据库信息加密安全 
有时候数据库信息泄露了,我们应该对数据库的密码等信息进行加密(MD5等),这样信息泄露,损失也可以在控制在一定范围内。

使用JSP的时候要注意 
1.不要随意开一生产环境汇总Webserver的错误显示。 
2.永远不要相信来自用户端的变量输入,有固定格式的变量一定要严格检查对应的格式,没有固定格式的变量需要对引号等特殊字符进行必要的过滤转义。 
3.使用预编译绑定变量的SQL语句 
4.做好数据库账号权限管理 
5.严格加密处理用户机密信息

一个好的程序一定要注意安全性,否则只适合练手。

判断以及防止SQL注入的更多相关文章

  1. 怎样判断有没有SQL注入?

    最为经典的单引号判断法: 在参数后面加上单引号,比如: http://xxx/abc.php?id=1' 如果页面返回错误,则存在 Sql 注入. 原因是无论字符型还是整型都会因为单引号个数不匹配而报 ...

  2. 怎样判断有没有SQL注入漏洞及原理?

    来源:实验楼 最为经典的单引号判断法: 在参数后面加上单引号,比如: http://xxx/abc.php?id=1' 如果页面返回错误,则存在 Sql 注入. 原因是无论字符型还是整型都会因为单引号 ...

  3. Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解

    在上篇博客中我们分析了sql注入的原理,今天我们就来看一下sql注入的整体过程,也就是说如何进行sql注入,由于本人数据库和网络方面知识有限,此文章是对网上大量同类文章的分析与总结,其中有不少直接引用 ...

  4. web安全之sql注入实例(5.0之前的)

    web安全之sql(5.0之前)注入实例 5.0之前的数据库没有information库. 所以这里需要运用的是load_file()函数来获取信息. 1.判断是否有sql注入,用and 1=1 和 ...

  5. 通过 HTTP 头进行 SQL 注入

    在漏洞评估和渗透测试中,确定目标应用程序的输入向量是第一步.有时,当做web应用程序测试时,SQL注入漏洞的测试用例通常局限于特殊的输入向量GET和POST变量.那么对于其他的HTTP头部参数呢?难道 ...

  6. SQL注入原理二

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多. 但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候 ,没有对用户输入数据的合法性进行判断,使应用程序存 ...

  7. 《sql注入攻击与防御 第2版》的总结 之 如何确定有sql注入漏洞

    看完<sql注入攻击与防御 第2版>后,发现原来自己也能黑网站了,就一个字:太爽了. 简单总结一下入侵步骤: 1.确定是否有sql注入漏洞 2.确定数据库类型 3.组合sql语句,实施渗透 ...

  8. 通过 HTTP 头进行 SQL 注入(转)

    英文原文:DatabaseTube,翻译:开源中国 在漏洞评估和渗透测试中,确定目标应用程序的输入向量是第一步.这篇文章解释了别人是如何通过HTTP头部对你的数据库进行SQL注入攻击的,以及讨论下选择 ...

  9. SQL注入(一) - 入门篇

    什么是SQL注入 可能大家还不是对SQL注入这个概念不是很清楚,简单地说,SQL注入就是攻击者通过正常的WEB页面,把自己SQL代码传入到应用程序中,从而通过执行非程序员预期的SQL代码,达到窃取数据 ...

随机推荐

  1. cf366C Dima and Salad (dp)

    是一个01分数规划的形式,只不过已经帮你二分好了. 把b乘过去,再减回来,找和等于0的a的最大值就行了 #include<bits/stdc++.h> #define pa pair< ...

  2. 【算法】php计算数字k在一段数字范围出现的次数

    计算数字k在0到n中的出现的次数,k可能是[0~9]内的一个值. 例如数字n=25,k=1,在1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  3. 解决使用jedis连接是报DENIED Redis is running in protected mode错误

    DENIED Redis is running in protected mode because protected mode is enabled, no bind address was spe ...

  4. js 正则表达式的使用(标志 RegExp exec() test() compile() $1...$9)

    一,标志 g (global,全局匹配标志) 执行正则表达式匹配或替换时,一般只要搜索到一个符合的文本就停止匹配或替换.使用该标志将搜索所有符合的文本直到文本末尾. i (ignoreCase,忽略大 ...

  5. 【UVA1194】Machine Schedule

    题目大意:给定 N 个任务和两台机器,每个任务可以在任意一台机器上执行,每台机器有 N 个启动状态,不同任务需要机器在不同的状态下执行,求执行所有任务需要多少个不同的状态. 题解:由于一个任务一定要被 ...

  6. RSA签名验证

    /// <summary> /// 验证签名 /// </summary> /// <param name="content">待签名字符串&l ...

  7. YSLOW(一款实用的网站性能检测工具)

     概述 YSlow是Yahoo发布的一款基于FireFox的插件,这个插件可以分析网站的页面,并告诉你为了提高网站性能,如何基于某些规则而进行优化.  安装  官网:http://yslow.org/ ...

  8. python基础之FTP

    目的:实现客户端到服务器的上传功能 所需文件夹: 客户端是FTP_client             服务端是FTP_server bin文件存放执行文件,conf下存放配置文件,core下是核心文 ...

  9. 使用Microsoft Toolkit 2.5 激活windows server 2012 R2与office

    本人亲测可以激活windows server 2012 R2版 关于此软件介绍如下: 这是一款可以用来管理或者配置 Microsoft Office 和 Windows 的许可证(密钥)的工具,也用来 ...

  10. 如何修改const常量值

    总结:这个跟计算机语言类别和编译器有关,本文是在linux环境下说明的. 分两种情况: 1. C语言: 2. C++语言: /*! * \Description: * \author scictor ...