这是保存上传文件的安全方法吗?
|
仅检查上传文件的扩展名是否足够安全?如果不是,我还应该检查什么?
public function saveUploadedFile($fileInputName, $fileLocation)
{
$fileName=$_FILES[$fileInputName][\'name\'];
if(substr($fileName,-4,4)==\'.php\')
{
my_error(\'have some cake\');
return FALSE;
}
else
{
move_uploaded_file($_FILES[$fileInputName][\'tmp_name\'],$fileLocation.$fileName);
}
}
没有找到相关结果
已邀请:
2 个回复
舶啥戚
; MimeType
(如果使用的是PHP 5.3以上;应该检查文件是否存在
;我认为应该这样做。还应该检查其他扩展名,例如.js,.phtml等。除非要上传这些文件到您的服务器。 祝好运。
冉案
您正在做的是将
文件列入黑名单,这本身就很好。但是,(如对该问题的评论中已指出的那样),您应该改为将文件类型列入白名单。因此,对于有条件的情况,您将检查相反的情况。 与其逻辑上说“如果文件为.php失败,”,而是从逻辑上说类似“如果文件不是.jpg,.gif或.doc等,则失败”。类型和禁止所有其他类型通常更安全,并有助于防止人们偷偷偷走坏文件。 它不是一个完整的安全解决方案,但总的来说,白名单比黑名单更安全。