php 判断文件上传类型与过滤不安全数据

禁止上传除图片文件以外的文件,提示,不要获取文件扩展名来判断类型,这样是最不安全的,我们用$_FIlES['form']['type'].

这个可以读取文件内容来识别文件类型,但它能识别的有限,不过如果你用图片就足够了解.函数,过滤不安全字符,实例函数代码如下:

  1. function s_addslashes($string, $force = 0) {
  2. if(!get_magic_quotes_gpc()) {
  3. if(is_array($string)) {
  4. foreach($string as $key => $val) {
  5. $string[$key] = s_addslashes($val, $force);
  6. }
  7. } else {
  8. $string=str_replace("&#x","& # x",$string); //
  9. //过滤一些不安全字符
  10. $string = addslashes($string);
  11. }
  12. }
  13. return $string;
  14. }
  15. //实例:
  16. $_COOKIE = c_addslashes($_COOKIE);
  17. $_POST = c_addslashes($_POST);
  18. $_GET = c_addslashes($_GET);
  19. //在公共文件中加入
  20. //开源代码phpfensi.com
  21. if($_FILES){
  22. foreach( $_FILES as $key => $_value )
  23. {
  24. $_FILES[$key]['type'] =$_value['type'];
  25. }
  26. if(substr($_FILES[$key]['type'],0,6) !='image/')
  27. {
  28. exit;
  29. }
  30. }