我也可以推荐以下内容:
is_uploaded_file
如果通过HTTP POST上载了按文件名命名的文件,则返回TRUE。这有助于确保恶意用户没有试图欺骗脚本来处理它不应该在其上运行的文件 - 例如/etc/passwd.如果有任何问题,这种检查尤为重要上传文件所做的任何事情都有可能向用户展示其内容,甚至可能向同一系统上的其他用户展示其内容。
basename()
函数只获取文件名,例如basename(c:/fakepath/something.avi); // will return something.avi
,因为有些人试图通过提供与目录相似的文件名欺骗计算机。
更多basename()
:
当您上传文件时,要移动一个文件,你想例如目录/uploads/
文件夹下,但恶意用户可以将文件命名为如something/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";
对于basename
参观这里的用法:http://php.net/manual/en/function.basename.php
第1步应该跳过 – dqhendricks