仓酷云

标题: PHP教程之PHP网站中全体防注入办法 [打印本页]

作者: 乐观    时间: 2015-2-4 00:09
标题: PHP教程之PHP网站中全体防注入办法
工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。防注入   明天写代码的时分蓦地想到是不克不及可以经由过程一个文件来处置全部网站中一切能够呈现注入的中央停止提防呢?如许就可以够不必在每一个法式里对每一个变量停止过滤,节俭了工夫和代码。
咱们次要是从两点动身,由于咱们的获得的变量普通都是经由过程GET或POST体例提交过去的,那末咱们只需对GET和POST过去的变量停止过滤,那末就可以够到达避免注入的后果。并且咱们的PHP真长短常好,已内置了$_GET和$_POST两个数组来存储一切变量,咱们要做的任务就是过滤每一个变量就能够了。
上面看详细的代码:
/* Author: heiyeluren */
/* 过滤一切GET过去变量 */
foreach ($_GET as $get_key=>$get_var)
{
    if (is_numeric($get_var))
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);
}
//字符串型过滤函数
function get_str($string)
{
    if (!get_magic_quotes_gpc()) {
return addslashes($string);
    }
    return $string;
}

那末咱们把以上代码放到一个公共的文件里,好比security.inc.php外面,每一个文件里都include一下这个文件,那末就可以够给任何一个法式停止提交的一切变量停止过滤了,就到达了咱们与日俱增的后果。
别的,还有一些其他的过滤办法,好比采取我之前利用的关头字过滤的办法:http://dev.csdn.net/article/71/71475.shtm
还可以参考三尺寒冰写的办法:http://www.fanghei.com/html/2005-06/20050607114008.htm

办法是分歧的,然而中心就是为了咱们的代码加倍平安。
Author: heiyeluren
Date: 2005-7-20



另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学。
作者: 再现理想    时间: 2015-2-4 09:44
当然这种网站的会员费就几十块钱。
作者: 只想知道    时间: 2015-2-5 03:24
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 冷月葬花魂    时间: 2015-2-5 05:17
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 蒙在股里    时间: 2015-2-9 03:38
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 若相依    时间: 2015-2-23 08:56
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 山那边是海    时间: 2015-3-7 06:14
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 分手快乐    时间: 2015-3-14 12:13
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 再见西城    时间: 2015-3-15 14:31
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 活着的死人    时间: 2015-3-17 20:19
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 变相怪杰    时间: 2015-3-22 22:29
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 仓酷云    时间: 2015-3-27 23:08
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 若天明    时间: 2015-4-3 03:19
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 灵魂腐蚀    时间: 2015-4-4 13:12
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 简单生活    时间: 2015-4-6 09:03
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 飘灵儿    时间: 2015-4-14 02:56
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 金色的骷髅    时间: 2015-4-16 13:10
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者: 兰色精灵    时间: 2015-4-18 05:16
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 老尸    时间: 2015-4-30 08:56
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 乐观    时间: 2015-5-8 15:03
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2