使用PHP动态调整图像大小并保护它们不受直接原始大小访问

时间:2014-07-20 18:17:59

标签: php .htaccess restriction timthumb dynamic-image-generation

想想库存图片。您有一个全尺寸的原件,只能在购买后下载。您只希望在服务器上以全尺寸显示该图像一次。但是,您希望以较小的尺寸在不同的地方显示该图像(同样也针对移动设备进行了减少)。

我已经掌握了这个难题的各个部分,但却未能让它们全部协同工作:

使用TimThumbCImage我可以调整服务器端的图像大小,并使用jQuery我可以根据用户的屏幕大小动态更改图像源。

使用PHP和.htaccess,我可以将图像文件放在webroot之外,并将包含图像名称的欺骗URL路由到PHP文件,该文件将读取实际图像并发送带有图像数据的标题。细

但TimThumb和CImage使用真实图像URL进行测试,以确保给定的URL是图像的实际文件路径。

如果我可以将实际图像数据发送到图像大小调整脚本而不是图像的URL,那么它应该从那里开始。由于PHP脚本将读取图像数据,因此我可以在执行读取之前检查用户是否已获得正确的凭据。

除了攻击TimThumb或CImage或编写我自己的自定义图像大小调整脚本之外,还有其他解决方案吗?

谢谢

1 个答案:

答案 0 :(得分:0)

答案刚刚传给我。

使用.htaccess,通过图像处理脚本路由所有图像。在图像处理脚本的第一行,我将包含我自己的自定义脚本。我的自定义脚本将根据实际图像检查GET参数,以确定用户是否具有以请求的大小为请求的图像提供的凭据。

如果是,请让图像处理脚本继续,如果没有,退出或更改GET参数,使图像处理脚本提供占位符图像。

瞧!