Linux操作系统下PHP服务器安全配置技巧

http://tech.ddvip.com   2007年08月24日    社区交流

内容摘要:Linux操作系统下PHP服务器安全配置技巧

  如前面文件打开中限制PHP操作路径是一个必要的选项。另外,如非特殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件:

  allow_url_fopen = Off

  重启apache。

  5、文件上传

  php的文件上传机制是把用户上传的文件保存在php.ini的upload_tmp_dir定义的临时目录(默认是系统的临时目录,如:/tmp)里的一个类似phpxXuoXG的随机临时文件,程序执行结束,该临时文件也被删除。PHP给上传的文件定义了四个变量:(如form变量名是file,而且register_globals打开)

  $file #就是保存到服务器端的临时文件(如/tmp/phpxXuoXG )

  $file_size #上传文件的大小

  $file_name #上传文件的原始名称

  $file_type #上传文件的类型

  推荐使用:

  $HTTP_POST_FILES['file']['tmp_name']

  $HTTP_POST_FILES['file']['size']

  $HTTP_POST_FILES['file']['name']

  $HTTP_POST_FILES['file']['type']

  这是一个最简单的文件上传代码:

<?
//test_5.php
if(isset($upload) && $file != "none") {
  copy($file, "/usr/local/apache/htdocs/upload/".$file_name);
  echo "文件".$file_name."上传成功!点击<a href="$PHP_SELF">继续上传</a>";
  exit;
}
?>
<html>
<head>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form enctype="multipart/form-data" method="post">
上传文件:
<input type="file" name="file" size="30">
<input type="submit" name="upload" value="上传">
</form>
</body>
</html>

  这样的上传代码存在读取任意文件和执行命令的重大问题。

责编:豆豆技术应用

正在加载评论...