Механизмы обхода загрузки файлов в PHPPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Механизмы обхода загрузки файлов в PHP

Сообщение Anonymous »

Я изучаю механизмы обхода загрузки файлов на PHP, которые включают в себя несколько методов, таких как обход расширений, типов MIME и добавление магических байтов.
У меня есть простой скрипт (скопирован с сайта chatGPT), который проверяет расширение.

Код: Выделить всё

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
$check = getimagesize($_FILES["file"]["tmp_name"]);

$allowedTypes = ['jpg', 'jpeg', 'gif', 'png'];
print_r($imageFileType);
echo "Response: ". in_array($imageFileType, $allowedTypes);
if (in_array($imageFileType, $allowedTypes)) {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "file=" . urlencode($target_file);
} else {
http_response_code(500);
echo "Sorry, there was an error uploading your file.";
}
} else {
http_response_code(400);
echo "File is not an image or not allowed.";
}
}
  • Теперь, если я попытаюсь загрузить PNG, все будет работать нормально. Однако, если я создам простой файл PHP и попытаюсь загрузить его, он не будет загружен должным образом.
  • Теперь, если вы измените магические байты файла PHP и попытаетесь загрузить он все еще не загружен, поскольку мы проверяем не магические байты, а расширение.
  • Если я попытаюсь изменить магические байты и изменить файл PHP с hello.php
  • Если я попытаюсь изменить магические байты и изменить файл PHP с hello.php
  • code> в hello.php.png, он загружается нормально.
Но когда я пытаюсь получить доступ к файлу с помощью localhost/hello.php .png, он по-прежнему отображается как PNG, а не как PHP.
Чего здесь не хватает? Я вижу онлайн-руководства, в которых, если мы загрузим файл, изменив hello.php.png, он будет рассматриваться как PHP, поскольку магические байты — это PNG, но на самом деле файл — это PHP. Я что-то упустил?

Подробнее здесь: https://stackoverflow.com/questions/787 ... sms-in-php
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Механизмы обхода загрузки файлов в PHP
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Механизмы обхода загрузки файлов в PHP
    Anonymous » » в форуме Php
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Почему механизмы маршрутизации PHP не могут обрабатывать /.pages?
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Механизмы EF Core в .NET Core для решения проблем конкурентоспособности.
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Почему некоторые механизмы регулярных выражений дважды сопоставляют .* в одной входной строке?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»