仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1317|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:用PHP函数处理SQL injection

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起。函数|处理   SQL injection成绩在ASP上可是闹得沸沸扬扬固然还有很多国际外有名的PHP法式“遇难”。至于SQL injection的概况,网上的文章太多了,在此就不作引见。
假如你网站空间的php.ini文件里的magic_quotes_gpc设成了off,那末PHP就不会在敏感字符前加上反斜杠(\),因为表单提交的内容能够含有敏感字符,如单引号('),就招致了SQL injection的破绽。在这类情形下,咱们可以用addslashes()来处理成绩,它会主动在敏感字符前添加反斜杠。
然而,下面的办法只合用于magic_quotes_gpc=Off的情形。作为一个开辟者,你不晓得每一个用户的magic_quotes_gpc是On仍是Off,假如把全体的数据都用上addslashes(),那不是“杀人如麻”了?假设magic_quotes_gpc=On,而且又用了addslashes()函数,那让咱们来看看: <?php
//假如从表单提交一个变量$_POST['message'],内容为 Tom's book
//这此到场毗连MySQL数据库的代码,本人写吧
//在$_POST['message']的敏感字符前加上反斜杠
$_POST['message'] = addslashes($_POST['message']);

//因为magic_quotes_gpc=On,所以又一次在敏感字符前加反斜杠
$sql = "INSERT INTO msg_table VALUE('$_POST[message]');";

//发送恳求,把内容保留到数据库内
$query = mysql_query($sql);

//假如你再从数据库内提取这个纪录并输入,就会看到 Tom\'s book
?>

如许的话,在magic_quotes_gpc=On的情况里,一切输出的单引号(')城市酿成(\')……
其实咱们可以用get_magic_quotes_gpc()函数等闲地处理这个成绩。当magic_quotes_gpc=On时,该函数前往TRUE;当magic_quotes_gpc=Off时,前往FALSE。至此,一定已有很多人意想到:成绩已处理。请看代码: <?php
//假如magic_quotes_gpc=Off,那就为提单提交的$_POST['message']里的敏感字符加反斜杠
//magic_quotes_gpc=On的情形下,则不加
if (!get_magic_quotes_gpc()) {
$_POST['message'] = addslashes($_POST['message']);
} else {}
?>
其实说到这里,成绩已处理。上面再说一个小技能。
有时表单提交的变量不止一个,能够有十几个,几十个。那末一次一次地复制/粘帖addslashes(),是不是费事了一点?因为从表单或URL获得的数据都是以数组模式呈现的,如$_POST、$_GET)那就自界说一个可以“风卷残云”的函数: <?php
function quotes($content)
{
//假如magic_quotes_gpc=Off,那末就入手下手处置
if (!get_magic_quotes_gpc()) {
//判别$content是不是为数组
if (is_array($content)) {
//假如$content是数组,那末就处置它的每个单无
foreach ($content as $key=>$value) {
$content[$key] = addslashes($value);
}
} else {
//假如$content不是数组,那末就仅处置一次
addslashes($content);
}
} else {
//假如magic_quotes_gpc=On,那末就不处置
}
//前往$content
return $content;
}
?>

  就是管理员可以编辑,删除,回复 等功能,。加入管理员功能要加入登陆系统,慢慢你会想在线添加管理员,慢慢你会让自己的作品更漂亮些,慢慢1个完整的留言板就会出来了,
乐观 该用户已被删除
沙发
发表于 2015-2-4 11:55:18 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
小女巫 该用户已被删除
板凳
发表于 2015-2-9 22:28:47 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
简单生活 该用户已被删除
地板
发表于 2015-2-28 02:08:44 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
爱飞 该用户已被删除
5#
发表于 2015-3-9 17:55:56 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
不帅 该用户已被删除
6#
发表于 2015-3-12 11:58:37 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
因胸联盟 该用户已被删除
7#
发表于 2015-3-19 21:52:39 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
分手快乐 该用户已被删除
8#
发表于 2015-3-22 21:56:53 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
柔情似水 该用户已被删除
9#
发表于 2015-3-29 03:41:36 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
再现理想 该用户已被删除
10#
发表于 2015-4-4 23:47:54 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
深爱那片海 该用户已被删除
11#
 楼主| 发表于 2015-4-6 05:08:35 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
金色的骷髅 该用户已被删除
12#
发表于 2015-4-19 15:54:12 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
若天明 该用户已被删除
13#
发表于 2015-5-1 23:10:17 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
山那边是海 该用户已被删除
14#
发表于 2015-5-3 00:38:04 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
灵魂腐蚀 该用户已被删除
15#
发表于 2015-5-10 22:20:41 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
兰色精灵 该用户已被删除
16#
发表于 2015-5-11 00:02:56 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
再见西城 该用户已被删除
17#
发表于 2015-5-11 00:13:40 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
若相依 该用户已被删除
18#
发表于 2015-6-13 20:23:49 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
活着的死人 该用户已被删除
19#
发表于 2015-6-28 22:19:38 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
飘飘悠悠 该用户已被删除
20#
发表于 2015-7-6 01:10:36 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 08:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表