5

ユーザーがサブディレクトリにファイルをアップロードできるサイトがあります。潜在的に悪意のあるコードのアップロードチェックをフィルタリングしています。私はセキュリティの側面に慣れていないので、これはサーバーへのアップロードを保護するためのベストプラクティスのように見えますか?そうでない場合、または私が何かを逃している場合、あなたは私を正しい方向に向けることができますか?

//arrays with acceptable file extensions/types -- default validations set to false
$acceptable_ext = array('jpg', 'JPG', 'jpeg', 'JPEG', 'gif', 'GIF', 'png', 'PNG');
$acceptable_type = array('image/jpeg', 'image/gif', 'image/png');
$validated_ext = 0;
$validated_type = 0;

//validate file extension and type
if($_FILES && $_FILES['file']['name']) {

    $file_info = pathinfo($_FILES['file']['name']);

    //validate extension
    for ($x=0; $x < count($acceptable_ext); $x++) { 
        if($file_info['extension'] == $acceptable_ext[$x]) {
            $validated_ext = 1;
        }
    }
    //validate type
    for ($x=0; $x < count($acceptable_type); $x++) { 
        if($file_info['type'] == $acceptable_type[$x]) {
            $validated_type = 1;
        }
    }
}

if($validated_ext && $validated_type) {
   //upload file to the server blah blah
}
4

1 に答える 1

1

ここでいくつかのセキュリティ構成を確認できます。

MIMEタイプ、ini config、.htaccessなどを確認すると、リンクごとに追加のセキュリティまたは追加の検証が提供されます。

于 2012-12-17T04:03:55.110 に答える