Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Handling File Paths Securely | File Handling and Uploads
PHP Core Concepts

bookHandling File Paths Securely

When working with files in PHP, you must always be aware of the risks associated with handling file paths, especially when user input is involved. One of the most significant threats is the directory traversal attack. This type of attack occurs when an attacker manipulates file paths to access files and directories outside the intended scope, potentially exposing sensitive information or allowing unauthorized actions.

Attackers typically exploit directory traversal vulnerabilities by injecting sequences like "../" into file paths. For example, if a PHP script naively appends user input to a directory path, an attacker could provide input such as "../../etc/passwd" to attempt to read system files. To prevent this, you should always sanitize and validate any user-supplied file paths, and never directly trust user input for file operations.

secure_file_save.php

secure_file_save.php

copy
1234567891011121314151617181920212223242526
<?php // Define the base directory where files can be saved $baseDir = __DIR__ . '/uploads/'; // Simulate user input (in real applications, this comes from $_POST or $_FILES) $userFilename = $_POST['filename'] ?? 'user_input.txt'; // Remove any directory traversal attempts $safeFilename = basename($userFilename); // Construct the full path securely $fullPath = $baseDir . $safeFilename; // Ensure the base directory exists if (!is_dir($baseDir)) { mkdir($baseDir, 0755, true); } // Save some content to the file $content = "This is a test file."; if (file_put_contents($fullPath, $content) !== false) { echo "File saved securely as: " . htmlspecialchars($safeFilename); } else { echo "Failed to save file."; } ?>

By following these practices, you greatly reduce the risk of unauthorized file access and keep your application secure.

question mark

What is a directory traversal attack in the context of file handling?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

What are some best practices for sanitizing file paths in PHP?

Can you give examples of secure file handling in PHP?

How can I check if my PHP application is vulnerable to directory traversal?

bookHandling File Paths Securely

Свайпніть щоб показати меню

When working with files in PHP, you must always be aware of the risks associated with handling file paths, especially when user input is involved. One of the most significant threats is the directory traversal attack. This type of attack occurs when an attacker manipulates file paths to access files and directories outside the intended scope, potentially exposing sensitive information or allowing unauthorized actions.

Attackers typically exploit directory traversal vulnerabilities by injecting sequences like "../" into file paths. For example, if a PHP script naively appends user input to a directory path, an attacker could provide input such as "../../etc/passwd" to attempt to read system files. To prevent this, you should always sanitize and validate any user-supplied file paths, and never directly trust user input for file operations.

secure_file_save.php

secure_file_save.php

copy
1234567891011121314151617181920212223242526
<?php // Define the base directory where files can be saved $baseDir = __DIR__ . '/uploads/'; // Simulate user input (in real applications, this comes from $_POST or $_FILES) $userFilename = $_POST['filename'] ?? 'user_input.txt'; // Remove any directory traversal attempts $safeFilename = basename($userFilename); // Construct the full path securely $fullPath = $baseDir . $safeFilename; // Ensure the base directory exists if (!is_dir($baseDir)) { mkdir($baseDir, 0755, true); } // Save some content to the file $content = "This is a test file."; if (file_put_contents($fullPath, $content) !== false) { echo "File saved securely as: " . htmlspecialchars($safeFilename); } else { echo "Failed to save file."; } ?>

By following these practices, you greatly reduce the risk of unauthorized file access and keep your application secure.

question mark

What is a directory traversal attack in the context of file handling?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5
some-alt