注入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

酷番云-618云上秒杀,香港1核2M 29/月,高防服务器20M 147/月 50M 450/月,续费同价!

官方网站:点击访问酷番云官网活动方案:优惠方案一(限时秒杀专场)有需要海外的可以看看,比较划算29月,建议年付划算,月付续费不同价,这个专区。国内节点可以看看,性能高IO为主, 比较少见。平常一般就100IO 左右。优惠方案二(高防专场)高防专区主要以高防为主,节点有宿迁,绍兴,成都,宁波等,节点挺多,都支持防火墙自助控制。续费同价以下专场。 优惠方案三(精选物理机)西南地区节点比较划算,赠送5...

Sharktech($49/月),10G端口 32GB内存,鲨鱼机房新用户赠送$50

Sharktech 鲨鱼机房商家我们是不是算比较熟悉的,因为有很多的服务商渠道的高防服务器都是拿他们家的机器然后部署高防VPS主机的,不过这几年Sharktech商家有自己直接销售云服务器产品,比如看到有新增公有云主机有促销活动,一般有人可能买回去自己搭建虚拟主机拆分销售的,有的也是自用的。有看到不少网友在分享到鲨鱼机房商家促销活动期间,有赠送开通公有云主机$50,可以购买最低配置的,$49/月的...

欧路云:美国CUVIP线路10G防御,8折优惠,19元/月起

欧路云新上了美国洛杉矶cera机房的云服务器,具备弹性云特征(可自定义需要的资源配置:E5-2660 V3、内存、硬盘、流量、带宽),直连网络(联通CUVIP线路),KVM虚拟,自带一个IP,支持购买多个IP,10G的DDoS防御。付款方式:PayPal、支付宝、微信、数字货币(BTC USDT LTC ETH)测试IP:23.224.49.126云服务器 全场8折 优惠码:zhujiceping...

防止sql注入为你推荐
在线漏洞检测求免费的漏洞扫描工具中国电信互联星空怎么在中国电信网上营业厅自行开通互联星空消费权限bluestacks安卓模拟器BlueStacks如何安装使用?手机区号有的手机号中间的号码是地区区号,那是什么卡唱吧电脑版官方下载唱吧有电脑版的么? 在哪里下载啊?直播加速请问哪种播放器的可以播放加速,并且可以保存神雕侠侣礼包大全神雕侠侣手游每天送的元宝买什么合适idc前线穿越火线河北的服务器好卡 有人知道怎么回事嘛 知道的速回网站优化方案网站优化方案怎么写?gbk编码表如何制作GBK与Unicode的对照表
已备案未注册域名 windows虚机 cn域名价格 tk域名 百度云1t 卡巴斯基免费试用版 香港亚马逊 域名dns google台湾 万网主机管理 双线asp空间 阿里云免费邮箱 新疆服务器 bwg iptables 回程 华为云服务器宕机 瓦工招聘 紫田网络 大容量存储控制器驱动 更多