最新消息:

干货:一起来谈谈PHP程序员成长路线

PHP guangzhouzhongxing 76浏览 0评论

第一阶段:基础阶段(基础PHP程序员)

重点:把LNMP搞熟练(核心是安装配置基本操作)

目标:能够完成基本的LNMP系统安装,简单配置维护;能够做基本的简单系统的PHP开发;能够在PHP中型系统中支持某个PHP功能模块的开发。

时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有。

1.Linux

基本命令、操作、启动、基本服务配置(包括rpm安装文件,各种服务配置等);会写简单的shell脚本和awk/sed 脚本命令等。

2.Nginx

做到能够安装配置nginx+php,知道基本的nginx核心配置选项,知道 server/fastcgi_pass/access_log 等基础配置,目标是能够让nginx+php_fpm顺利工作。

3.MySQL

会自己搭建mysql,知道基本的mysql配置选项;知道innodb和myisam的区别,知道针对InnoDB和MyISAM两个引擎的不同配置选项;知道基本的两个引擎的差异和选择上面的区别;能够纯手工编译搭建一个MySQL数据库并且配置好编码等正常稳定运行;核心主旨是能够搭建一个可运行的MySQL数据库。

4.PHP

基本语法数组、字符串、数据库、XML、Socket、GD/ImageMgk图片处理等等;熟悉各种跟MySQL操作链接的api(mysql/mysqli/PDO),知道各种编码问题的解决;知道常规熟练使用的PHP框架(ThinkPHP、Zendframework、Yii、Yaf等);了解基本MVC的运行机制和为什么这么做,稍微知道不同的PHP框架之间的区别;能够快速学习一个MVC框架。能够知道开发工程中的文件目录组织,有基本的良好的代码结构和风格,能够完成小系统的开发和中型系统中某个模块的开发工作。

除此之外,广州中星信息的老师还介绍:

对php一些服务器端特性配置,加强php的安全

1、编译的时候注意补上已知的漏洞

从4.0.5开始,php的mail函数加入了第五个参数,但它没有好好过滤,使得php 应用程序能突破safe_mode的限制而去执行命令。所以使用4.0.5和4.0.6的时候

在编译前我们需要修改php源码包里 ext/standard/mail.c文件,禁止mail函数的第五参数或过滤shell字符。在mail.c 文件的第152行,也就是下面这行:

if (extra_cmd != NULL) {

后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);

然后编译php,那么我们就修补了这个漏洞。

2、修改php.ini配置文件

以php发行版的php.ini-dist为蓝本进行修改。

1)Error handling and logging

在Error handling and logging部分可以做一些设定。先找到:

display_errors = On

php缺省是打开错误信息显示的,我们把它改为:

display_errors = Off

关闭错误显示后,php函数执行错误的信息将不会再显示给用户,这样能在一定程度上防止攻击者从错误信息得知脚本的物理位置,以及一些其它有用的信息,起码给攻击者的黑箱检测造成一定的障碍 。这些错误信息可能对我们自己有用,可以让它写到指定文件中去,那么修改以下:

log_errors = Off

改为:

log_errors = On

以及指定文件,找到下面这行:

;error_log = filename

去掉前面的;注释,把filename改为指定文件,如

/usr/local/apache/logs/php_error.log

error_log = /usr/local/apache/logs/php_error.log

这样所有的错误都会写到php_error.log文件里。

2)Safe Mode

php的safe_mode功能对很多函数进行了限制或禁用了,能在很大程度解决php的安全问题。在Safe Mode部分找到:

safe_mode = Off

改为:

safe_mode = On

这 样就打开了safe_mode功能。象一些能执行系统命令的函数shell_exec()和``被禁止,其它的一些执行函数如:exec(), system(), passthru(), popen()将被限制只能执行safe_mode_exec_dir指定目录下的程序。如果你实在是要执行一些命令或程序,找到以下:

safe_mode_exec_dir =

指定要执行的程序的路径,如:

safe_mode_exec_dir = /usr/local/php/exec

然后把要用的程序拷到/usr/local/php/exec目录下,这样,象上面的被限制的函数还能执行该目录里的程序。

关于安全模式下受限函数的详细信息请查看php主站的说明:

[url]http://www.php.net/manual/en/features.safe-mode.php[/url]

3)disable_functions

如果你对一些函数的危害性不太清楚,而且也没有使用,索性把这些函数禁止了。找到下面这行:

disable_functions =

在”=“后面加上要禁止的函数,多个函数用“,”隔开。

最后,还有一点,例如:某个购物网站购买商品时,采用http://www.shop.com/buy.php?item=watch&num=1,item参数确定要购买什么物品,num参数确定要购买数量,如果攻击者以隐藏的方式发送给目标用户链接,那么如果目标用户不小心访问以后,购买的数量就成了1000个

实例

随缘网络PHP留言板V1.0

任意删除留言

//delbook.php 此页面用于删除留言

include_once(“dlyz.php”); //dlyz.php用户验证权限,当权限是admin的时候方可删除留言

include_once(“../conn.php”);

$del=$_GET[“del”];

$id=$_GET[“id”];

if ($del==”data”)

{

$ID_Dele= implode(“,”,$_POST[‘adid’]);

$sql=”delete from book where id in (“.$ID_Dele.”)”;

mysql_query($sql);

}

else

{

$sql=”delete from book where id=”.$id; //传递要删除的留言ID

mysql_query($sql);

}

mysql_close($conn);

echo “”;

echo “alert(‘删除成功!’);”;

echo ” location=’book.php’;”;

echo “”;

?>

干货:一起来谈谈PHP程序员成长路线

转载请注明:PHP学习 » 干货:一起来谈谈PHP程序员成长路线

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址