What are some common security vulnerabilities in PHP scripts, as seen in the provided code snippet?

One common security vulnerability in PHP scripts is SQL injection, where user input is not properly sanitized before being used in database queries. To prevent this, it is crucial to use prepared statements or parameterized queries to bind user input to query parameters. Another vulnerability is Cross-Site Scripting (XSS), where user input is not properly escaped before being displayed on a webpage. To mitigate this risk, all user input should be sanitized and encoded before being output to the browser. Additionally, insecure file uploads can lead to vulnerabilities if file extensions are not properly validated, allowing malicious files to be uploaded and executed on the server. It is important to validate file types, enforce proper file permissions, and store files outside the web root directory to prevent unauthorized access. Code snippet for preventing SQL injection:

// Using prepared statements to prevent SQL injection
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $username);
$stmt->execute();
```

Code snippet for preventing Cross-Site Scripting (XSS):

```php
// Sanitizing and encoding user input to prevent XSS
$escapedInput = htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
echo $escapedInput;
```

Code snippet for preventing insecure file uploads:

```php
// Validating file extensions before allowing upload
$allowedExtensions = ['jpg', 'png', 'gif'];
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowedExtensions)) {
    die('Invalid file type.');
}