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

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

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

Например:

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

а также

<img src="myimage.php" />

person Qix - MONICA WAS MISTREATED    schedule 05.01.2015    source источник
comment
хм, думаю нет :-) для браузеров это расширение не актуально.   -  person Eugen    schedule 06.01.2015
comment
Ни один основной браузер не будет. URL-адреса в основном просто строки для них. Только старые или неправильно настроенные прокси могут.   -  person mario    schedule 06.01.2015
comment
@Марио, можешь добавить в качестве ответа? :)   -  person Qix - MONICA WAS MISTREATED    schedule 06.01.2015
comment
Не совсем связано с вопросом. Вы можете заблокировать их с помощью настроек сервера (php.ini или .htaccess), однако вы можете заставить обычные изображения просто работать, а файлы сценариев загружаются автоматически, чтобы они не выполнялись.   -  person Mramaa    schedule 06.01.2015


Ответы (2)


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

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

Два примера:

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

  • Так выглядит логотип официального сайта PHP.

    http://php.net/images/logo.phpЛоготип PHP

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

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

person Jens A. Koch    schedule 05.01.2015

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

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

person RCrowt    schedule 05.01.2015