某些浏览器会忽略带有 non-image(即脚本)扩展名的图像 URL 吗?
Do some browsers ignore image URLs with non-image (i.e. script) extensions?
我阅读 extensionless image URLs are generally acceptable 时 content-type header 设置正确。
但是,如果脚本生成图像输出并设置内容类型,但图像标签中的 URL 例如 .php
, 任何浏览器都会拒绝该请求作为潜在恶意?
例如:
<?php
// myimage.php
header( 'Content-Type: image/jpeg' );
echo read_file_contents( 'someimage.jpg.in' );
和
<img src="myimage.php" />
文件扩展名与浏览器无关。由 mime 类型定义的内容。
根据我的经验,在许多网站上以“.php”形式提供 MP3、图像和许多其他文件都没有问题。
否 - 浏览器不会拒绝潜在恶意请求。
定义内容类型的响应header对于此方法很重要。
两个例子:
很多金融网站都使用这种方法动态生成他们的股票图表,(但他们中的大多数都转向了 JS 解决方案)。
PHP官方网站的标志就是这样呈现的。
http://php.net/images/logo.php
响应 header 包含 "Content-Type:image/png"。
这是它的 source-code:https://github.com/php/web-php/blob/master/images/logo.php
我阅读 extensionless image URLs are generally acceptable 时 content-type header 设置正确。
但是,如果脚本生成图像输出并设置内容类型,但图像标签中的 URL 例如 .php
, 任何浏览器都会拒绝该请求作为潜在恶意?
例如:
<?php
// myimage.php
header( 'Content-Type: image/jpeg' );
echo read_file_contents( 'someimage.jpg.in' );
和
<img src="myimage.php" />
文件扩展名与浏览器无关。由 mime 类型定义的内容。
根据我的经验,在许多网站上以“.php”形式提供 MP3、图像和许多其他文件都没有问题。
否 - 浏览器不会拒绝潜在恶意请求。
定义内容类型的响应header对于此方法很重要。
两个例子:
很多金融网站都使用这种方法动态生成他们的股票图表,(但他们中的大多数都转向了 JS 解决方案)。
PHP官方网站的标志就是这样呈现的。
http://php.net/images/logo.php
响应 header 包含 "Content-Type:image/png"。
这是它的 source-code:https://github.com/php/web-php/blob/master/images/logo.php