mysql sql防注入简介与防注入实例

下面我们根据我编程序的经验来写一篇关于mysql教程 sql防注入简介与防注入实例吧。

sql防注入简介:

sql查询是一种用来数据与用户进行交互的文本语言,sql利用外部接将用户提交的数据发送给mysql数据库教程服务器进行处理,如果没有严密的过滤,可能导致数据丢失,如被删除,修改,而这样问题是网络管理员很难做事的,他们不能通过打系统被丁,或安装防火强可以控制了,。

下面我们来看一个简单的用户登陆实例。

一,创建用户表user

create table user (

userid(int) not null auto_increment,

username not null default'',

userpass not null default '',

primary key(userid)

)type= myisam auto_increment=1;

好表就创建成功了。我们先给用户表user插入一条记录

insert into 'user' values(1,'www.111cn.net','123456');

现在来做用户登陆代码

<?php教程

$root ='localhost';

$dbName='root';

$dbpwd ='123456';

$db = 'userdb';

mysql_connect($root,$dbName,$dbpwd) or die('数据库连接失败');

$sql ="select * from user where username='$username"  and password='$pwd';

$result =mysql_db_query($db,$sql);

$ufo = mysql_fetch_array( $result );

if( $ufo )

{

echo '登陆成功';

}

else

{

echo '登陆失败';

}

好现在我们来做一个实例提供一个url给上面的php处理页面

http://www.111cn.net/test/a.php?user=www.111cn.net' or '  1= 1;

结果发现这条sql可以成功登陆我们的系统,而不是我想要的密码等12346,好下面我们再来看个实例

http://www.111cn.net/test/a.php?user=www.111cn.net' /*;

http://www.111cn.net/test/a.php?user=www.111cn.net' or ' #;

这样只要用户名正确同样可以登陆系统,在sql语句中/*与#是注掉后面的sql,

好了,根据上面的问题我们写了一个自定义函数来过滤大部sql注入的防注入函数

function safesql()

{

$re = "/(|'%27|;|(%3d)|(|(%28)|)|(%29)|(/*)|(%2f%2a)|(%2a%2f)|+|(%2b)|(<|(%3e)|(%3e)|(--))|[|%5d)/";

if( preg_match( $re ,$username)

{

echo'请不要非法sql注入';

exit;

}

else

{

return turn;

}

最后总结一下:

注明:本站原创文章转载注明来源www.111cn.net

时间: 2024-10-02 11:36:58

mysql sql防注入简介与防注入实例的相关文章

mysql sql 防止重复插入相同的记录实例

mysql教程 sql 防止重复插入相同的记录实例 首页我们来看看防止页面重复刷新插入防止方法 方法: 表单页setcookie("pass","ok"); 处理页 if($_COOKIE["pass"]=="ok"){ mysql_query("insert inot ....."); } else{   echo "页面已经过期,请不要重复刷新";   exit; } setcook

SQL不完全思路与防注入程序

程序|防注入 <一>SQL注入简介许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.用户可以提交一段数据库查询代码,(一般是在浏览器地址栏进行,通过正常的www端口访问)根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入.<二>SQL注入思路思路最重要其实好多人都不知道SQL到底能做什么呢这里总结一下SQL注入入侵的总体的思路1. SQL注入漏洞的判断,即寻找注入点2. 判断后台数据库类型3. 确定XP_

对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析_php实例

ThinkPHP官网上曾有一段公告指出,在ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件 根据官方文档对"防止SQL注入"的方法解释(参考http://doc.thinkphp.cn/manual/sql_injection.html) 使用查询条件预处理可以防止SQL注入,没错,当使用如下代码时可以起到效果: $Model->where("id=%d and usern

Spring-依赖注入简介与xml配置

spring核心是依赖注入.本质就是通过配置xml文件或注解来自动生成你需要的对象,放在spring的大容器中. spring是一个独立的框架,既可以用在java SE项目中,也可以用在 Web项目中.程序先创建bean容器,再调用bean容器的getBean()方法来获取Spring容器中的bean. 1.获得 1.1 spring 依赖 <dependency> <groupId>org.springframework</groupId> <artifactI

从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库

开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database Service)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和全SSD盘高性能存储,支持MySQL.SQL Server.PostgreSQL和PPAS(高度兼容Oracle)引擎,默认部署主备架构且提供了容灾.备份.恢复.监控.迁移等方面的全套解决方案. 当然,并不是指所有用户

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码] Unity 2.x依赖注入(控制反转)IOC,对于没有大项目经验的童鞋来说,这些都是陌生的名词,甚至有些同学还停留在拉控件的阶段. 您可以访问http://unity.codeplex.com/releases得到最新版本的Unity现在.当然,如果您在您的visual studio 中安装了Nuget 包管理器,你可以直接在Nuget中获取到最

Mysql SQL Mode详解

Mysql SQL Mode简介 MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式.这样,应用程序就能对服务器操作进行量身定制以满足自己的需求.这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查.这样,就能在众多不同的环境下.与其他数据库服务器一起更容易地使用MySQL.可以使用"--sql-mode="modes""选项,通过启动mysqld来设置默认的SQL模式.从MySQL 4.1开始,也能在

php配置防跨站、防跨目录安全

  现在很多网站都是采用php建站,不少都是直接使用现在成熟的cms程序,这些php开发的cms系统本身安全性可能并不高,这时就需要我们在服务器做一些针对php程序配置防跨站.防跨目录等一些设置,可以有效的防止服务器上所有的php网站被恶意篡改. 适用范围及演示系统 适用范围:php5.3及以上版本 演示系统:centos 防跨站.防跨目录安全设置方法 第1步:登录到linux系统终端. 第2步:找到并打开php配置文件. 第3步:在php.ini最底部添加以下代码,并保存.大家可就按以下代码改

SQL Server窗口函数简介

简介 SQL Server 2012之后对窗口函数进行了极大的加强,但对于很多开发人员来说,对窗口函数却不甚了解,导致了这 样强大的功能被浪费,因此本篇文章主要谈一谈SQL Server中窗口函数的概念. 什么是窗口函数 窗口函数,也可以被称为OLAP函数或分析函数.理解窗口函数可以从理解聚合函数开始,我们知道聚合函数的概念, 就是将某列多行中的值按照聚合规则合并为一行,比如说Sum.AVG等等,简单的概念如图1所示. 图1.聚合函数 因此,通常来说,聚合后的行数都要小于聚合前的行数.而对于窗口