怎么样才能让上传文件最安全不被人家上传恶意代码 有好的源码例子吗?

解决方案 »

  1.   

    只能上传rar 文件,然后服务器再解压.
      

  2.   

    以下是个人理解,不一定准确:文件上传功能的安全隐患,一般不出在“上传”操作本身,而在于上传的文件怎么用。比如你做一个“相册”功能,上传的图片文件要保存到服务器上。假设你是存储在硬盘上,再假设存储的位置是一个可以通过 URL 直接访问到的位置,再假设你对上传的文件没做任何保护性处理(这个就是关键啰:),那么,有人上传了一个 PHP 文件,然后再用特定的 URL 来访问它,后面的故事大家都知道了,hehe所以,最重要的手段就是对上传的内容做严格的保护:仅让它能以最有限的方式被使用。比如如果上传的是图片,有可能的话,最好经过一次图片处理,确保它“真的只是个图片”;确保服务器端逻辑只会把这个文件当作“数据文件”来使用,而不会当作“可执行代码”来执行。
      

  3.   

    判断类型。不是有个$_FILES["file"]["type"]吗?用这个检查提交过来的文件是否符合要求。还可以在客户端做一些验证。
      

  4.   

    用is_upload_file和move_upload_file判断这个文件是不是根据HTTP协议上传的和移动文件。可以有效的遏制文件上传攻击。
      

  5.   

    $_FILES["file"]["type"]判断文件mime类型,
    比如:image/jpeg,同时根据上传的mime类型判断扩展名是否为.jpg,如果是,那么合法;
    is_upload_file判断是否为上传的文件,如果是,则合法
    move_upload_file将上传的文件复制到指定的目录里,而不是copy、rename
    chmod将文件的权限设置为读写,禁止执行
    可以再apache中设置目标文件夹禁止执行任何脚本