How can PHP be used to validate file uploads and prevent common security vulnerabilities?

To validate file uploads and prevent common security vulnerabilities in PHP, you can check the file type, size, and content before allowing it to be uploaded to the server. This can help prevent malicious files from being uploaded and executed on the server, protecting against security risks like code injection and file inclusion attacks.

// Validate file type
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
    die('Invalid file type. Only JPEG, PNG, and GIF files are allowed.');
}

// Validate file size
$maxSize = 1048576; // 1MB
if ($_FILES['file']['size'] > $maxSize) {
    die('File is too large. Maximum file size allowed is 1MB.');
}

// Validate file content
if (exif_imagetype($_FILES['file']['tmp_name']) === false) {
    die('Invalid file content. Please upload a valid image file.');
}

// Move uploaded file to desired location
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);