php上传文件安全校验,php – 安全文件上传并验证它

我收到视频上传和图片上传:

我的环境:LAMP

编辑:我将允许远程上传和POST视频上传

EDIT2:我得到的文件将被重命名,我不会存储原始文件名.

>首先我用$_FILES检查mime类型.

>其次我再次使用finfo_file(如果函数存在)检查mimetype

(PHP 5.3)或shell命令文件.

>如果文件通过了上述检查,则文件将被移动到公共目录.

我的问题是这个设置安全吗?或者我能改进一下吗?我昨天读了这个洞,这对我来说似乎足够了,但谁知道:)

编码和安全时我是新手:-)

最佳答案 我还可以推荐以下内容:

> is_uploaded_file如果文件名命名的文件是通过HTTP POST上传的,则返回TRUE.这有助于确保恶意用户没有试图欺骗脚本处理它不应该工作的文件 – 例如/etc/passwd.如果有任何检查,这种检查尤其重要使用上传文件完成的任何操作可能会向用户显示其内容,甚至可能向同一系统上的其他用户显示内容.

> basename()函数只获取文件名,如basename(c:/fakepath/something.avi); //将返回something.avi,因为有些人试图通过提供类似目录的文件名来欺骗计算机.

有关basename()的更多信息:

当您上传文件时,您希望将文件移动到所需的目录,例如/ uploads /文件夹下,但恶意用户可以将文件命名为/ hello.jpg,然后使用move_uploaded_file移动文件时( $source,$destionation)你的$destination将是/uploads/something/hello.jpg并且会导致问题.为确保只获得正确的文件名,您需要使用basename()函数,该函数返回hello.jpg等.

$file_name = basename($_FILES["upload_ctrl"]["name"]);

if(!move_uploaded_file($_FILES["upload_ctrl"]["tmp_name"],"uploads/".$file_name))

echo "Opps I cannot upload the file";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值