What are the potential security risks associated with improperly configuring upload directories in PHP?

Improperly configuring upload directories in PHP can lead to security risks such as allowing malicious files to be uploaded, potentially leading to code execution or unauthorized access to sensitive data on the server. To mitigate this risk, it is important to properly set permissions on upload directories, validate file types, and sanitize file names.

// Set upload directory
$uploadDir = '/path/to/upload/directory/';

// Validate file type
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
    die('Invalid file type.');
}

// Sanitize file name
$fileName = preg_replace("/[^A-Za-z0-9.]/", '', $_FILES['file']['name']);

// Move uploaded file to upload directory
move_uploaded_file($_FILES['file']['tmp_name'], $uploadDir . $fileName);