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

Megalayer美国服务器CN2优化线路30M带宽3独立IP限时月299元

Megalayer 商家算是比较新晋的国内主机商,主要方向是美国、香港、菲律宾等机房的独立服务器为主,以及站群服务器和显卡服务器。同时也有新增价格并不是特别优惠的VPS云服务器。上午的时候有网友问问有没有CN2线路的美国独立服务器的,这里我推荐他选择Megalayer看看,目前也是有活动截止到月底的。Megalayer 商家创办2年左右时间,如果我们初次使用建议月付体验。目前在进行且可能截止到6月...

HostYun:联通AS9929线路,最低月付18元起,最高500Mbps带宽,洛杉矶机房

最近AS9929线路比较火,联通A网,对标电信CN2,HostYun也推出了走联通AS9929线路的VPS主机,基于KVM架构,开设在洛杉矶机房,采用SSD硬盘,分为入门和高带宽型,最高提供500Mbps带宽,可使用9折优惠码,最低每月仅18元起。这是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选。...

HostKvm:香港国际/韩国KVM夏季7折,2G内存套餐月付5.95美元起

HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。目前商家发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付5.95美元起。下面分别列出几款主机套餐配置信息。套餐:韩国KR...

防止sql注入为你推荐
淘宝收费淘宝要收费吗?在线漏洞检测如果检测网站是否有漏洞?bluestacksBlueStacks是什么?在PC上畅玩Android 45万款应用微信如何建群微信怎么建群?网站运营我想成为网站运营的人我该学什么??今日热点怎么删除怎样删除实时热点办公协同软件求一款国内知名的OA办公软件,谁知道有哪些呢?直播加速请问哪种播放器的可以播放加速,并且可以保存电子商务网站模板做电子商务网站用什么cms或者模版比较好?srv记录如何解析一个SRV域名的ip
免费二级域名注册 高防dns 免费网络电视 150邮箱 nerds 河南移动网 免费智能解析 鲁诺 江苏双线服务器 帽子云排名 云服务器比较 lamp怎么读 注册阿里云邮箱 万网主机 godaddy空间 广东服务器托管 蓝队云 winds 什么是dns zencart安装 更多