我读到无扩展名的图像 URL 通常是可以接受的正确的内容类型标头集。
但是,如果脚本生成图像输出并设置内容类型,但图像标签中的 URL 是.php
例如,任何浏览器都会拒绝该请求,因为它具有潜在的恶意吗?
例如:
<?php
// myimage.php
header( 'Content-Type: image/jpeg' );
echo read_file_contents( 'someimage.jpg.in' );
和
<img src="myimage.php" />
我读到无扩展名的图像 URL 通常是可以接受的正确的内容类型标头集。
但是,如果脚本生成图像输出并设置内容类型,但图像标签中的 URL 是.php
例如,任何浏览器都会拒绝该请求,因为它具有潜在的恶意吗?
例如:
<?php
// myimage.php
header( 'Content-Type: image/jpeg' );
echo read_file_contents( 'someimage.jpg.in' );
和
<img src="myimage.php" />
否 - 浏览器不会将请求视为潜在恶意而拒绝。
定义内容类型的响应标头对于这种方法很重要。
两个例子:
许多金融网站使用这种方法来动态生成他们的股票图表,(但大多数都改用 JS 解决方案)。
PHP 官方网站的 logo 就是这样渲染的。
http://php.net/images/logo.php
响应标头包含“Content-Type:image/png”。
这是它的源代码:https ://github.com/php/web-php/blob/master/images/logo.php
文件扩展名与浏览器无关。由 mime 类型定义的内容。
以我的经验,在众多网站上以“.php”形式提供 MP3、图像和许多其他文件,没有任何问题。