Некоторые браузеры игнорируют URL-адреса изображений с расширениями, не относящимися к изображениям (например, сценариям)?

Я прочитал это URL-адреса изображений без расширений обычно приемлемы с правильным набором заголовка типа содержимого.

Однако, если сценарий генерирует выходные данные изображения и устанавливает тип содержимого, но URL-адрес в теге изображения .php например, будет ли любой браузер отклонять запрос как потенциально вредоносный?

Например:

<?php
// myimage.php
header( 'Content-Type: image/jpeg' );
echo read_file_contents( 'someimage.jpg.in' );

а также

<img src="myimage.php" />

1

Решение

Нет — браузер не будет отклонять запрос как потенциально вредоносный.

Заголовок ответа, определяющий тип контента, важен для этого подхода.

Два примера:

  • Многие финансовые сайты используют этот подход для динамического создания своих биржевых диаграмм (но большинство из них перешли на решения JS).

  • Логотип официального сайта PHP отображается таким образом.

    http://php.net/images/logo.phpPHP логотип

    Заголовок ответа содержит «Content-Type: image / png».

    И это исходный код для этого: https://github.com/php/web-php/blob/master/images/logo.php

2

Другие решения

Расширение файла не имеет отношения к браузеру. Содержание определяется типом пантомимы.

По моему опыту, на многих сайтах без проблем использовались MP3-файлы, изображения и многие другие файлы в формате «.php».

0