注入PHP登录中防止sql注入方法分析

防止sql注入  时间:2021-02-14  阅读:()

★精品文档★

PHP登录中防止sql注入方法分析

防止sql注入这些细节问题一般是出现在大意程序员或者是新手程序员了他们未对用户提交过来的数据进行一些非常过滤从而导致给大家测试一下就攻破了你的数据库了下面我来简单的一个用户登录未进行安全配置可能出现的sql注入方法下面一起来看看吧。

比如以下一段登录的代码

代码如下:if($l =@mysql_connect(‘ localhost’ , ‘root’ , ‘123’)) ordie(‘数据库连接失败’);mysql_select_db(‘test’);mysq l_set_charset(‘utf8’);

$sql = ‘select * from test where username =“$username”and password=“$password”‘ ;

$res=mysq l_q u e ry($sq l);if(mysq l_n u m_rows($res)){header(‘Location: ./home.php’);

}else{die(‘输入有误’);

}

注意上面的sql语句存在很大的安全隐患如果使用以下万能密码和万能用户名那么可以轻松进入页面

1/5

★精品文档★

代码如下:

1 . $sql= ‘select * from test where username = “***”and password=“***”or 1 =“1”‘ ;

很明显针对这条sql语句的万能密码是: ***”or 1 =“1

代码如下:

2. $sql = ‘select * from test where username =“***”union select *from users/*and password=“***”‘ ;

正斜线*表示后面的不执行mysql支持union联合查询所以直接查询出所有数据;所以针对这条sql语句的万能用户名是 ***”union select *from users/*

但是此注入只针对代码中的sql语句如果

代码如下:

$sql = “select * from test where username =$username and password=$password”;

上面的注入至少已经不管用了不过方法是一样的;

在使用PDO之后 sql注入完全可以被避免而且在这个快速开发的时代框架横行已然不用过多考虑sql注入问题了。

下面整理了两个防止sql注册函数

代码如下:

/*过滤所有GET过来变量*/foreach ($_GET as$get_key=>$get_var)

2/5

★精品文档★

{if (is_numeric($get_var)) {

$get[strtolower($get_key)]=get_int($get_var);}else{

$get[strtolower($get_key)]=get_str($get_var);}

}

/*过滤所有POST过来的变量*/foreach ($_POST as$post_key=>$post_var){if (is_numeric($post_var)) {

$post[strtolower($post_key)]=get_int($post_var);}else{

$post[strtolower($post_key)]=get_str($post_var);}

}

/*过滤函数*/

//整型过滤函数function get_int($number)

{return intval($number);

}

3/5

★精品文档★

//字符串型过滤函数function get_str($string)

{if (!get_magic_quotes_gpc()) {return addslashes($string);

}return$string;

}

还有一些博客会这样写

代码如下:

<?phpfunction post_check($post)

{if(!get_magic_quotes_gpc()) //判断magic_quotes_gpc是否为打开

{

$post = addslashes($post); //进行magic_quotes_gpc没有打开的情况对提交数据的过滤

}

$post=str_replace(“_”, “ _”,$post); //把‘_’过滤掉$post=str_replace(“%”, “ %”,$post); //把’%‘过滤掉$post=nl2br($post); //回车转换

4/5

★精品文档★

$post=htmlspecialchars($post); //html标记转换return$post;

}

?

5/5

racknerd新上架“洛杉矶”VPS$29/年,3.8G内存/3核/58gSSD/5T流量

racknerd发表了2021年美国独立日的促销费用便宜的vps,两种便宜的美国vps位于洛杉矶multacom室,访问了1Gbps的带宽,采用了solusvm管理,硬盘是SSDraid10...近两年来,racknerd的声誉不断积累,服务器的稳定性和售后服务。官方网站:https://www.racknerd.com多种加密数字货币、信用卡、PayPal、支付宝、银联、webmoney,可以付...

如何低价香港服务器购买?有没有便宜的香港服务器推荐?

如何低价香港服务器购买?想要做一个个人博客,想用香港服务器,避免繁琐备案,性能不需要多高,只是记录一些日常而已,也没啥视频之类的东西,想问问各位大佬有没有低价的香港服务器推荐?香港距大陆近,相比美国服务器最大的优势在于延迟低,ping值低,但是带宽紧张,普遍都是1M,一般戏称其为“毛细血管”。同时价格普遍高,优质稳定的一般价格不菲。大厂云梯队阿里云、腾讯云两家都有香港服务器,要注意的是尽量不要选择...

DediPath($1.40),OpenVZ架构 1GB内存

DediPath 商家成立时间也不过三五年,商家提供的云服务器产品有包括KVM和OPENVZ架构的VPS主机。翻看前面的文章有几次提到这个商家其中机房还是比较多的。其实对于OPENVZ架构的VPS主机以前我们是遇到比较多,只不过这几年很多商家都陆续的全部用KVM和XEN架构替代。这次DediPath商家有基于OPENVZ架构提供低价的VPS主机。这次四折的促销活动不包括512MB内存方案。第一、D...

防止sql注入为你推荐
天府热线天府热线怎么老是进不去?微信如何建群微信建群怎么建arm开发板arm开发板是干什么用的,是用在什么领域方面的手机区号手机号码+86是移动区号还是联通的区号?网站联盟网盟跟b2b平台有什么区别iphone越狱后怎么恢复苹果越狱后怎么恢复出厂设置蘑菇街美丽说蘑菇街美丽说唯品会天猫京东。女生买衣服,哪个好xv播放器下载除了迅雷看看播放器还有什么播放器支持xv格式的视频?创维云电视功能很喜欢创维云电视,它到底有哪些独特功能?ios系统iOS系统为什么那么好
成都虚拟主机 vps交流 怎么申请域名 中国万网域名 阿云浏览器 justhost 优惠码 账号泄露 360抢票助手 云图标 网通服务器ip 静态空间 泉州移动 33456 免费mysql数据库 双线asp空间 英国伦敦 电信网络测速器 畅行云 lamp是什么意思 更多