加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 安全地处理远程“hotlinked”图像

发布时间:2020-12-13 22:34:14 所属栏目:PHP教程 来源:网络整理
导读:我需要允许网站用户提供远程“热链接”图像. 我意识到这有点危险,所以这是目前的程序: 1)解析使用PHP pathinfo提供的路径,并将路径分解为适当转义的部分(主机,文件名,扩展名). 2)执行图像标题的curl请求,如下所述:How can one check to see if a remote fi
我需要允许网站用户提供远程“热链接”图像.

我意识到这有点危险,所以这是目前的程序:

1)解析使用PHP pathinfo提供的路径,并将路径分解为适当转义的部分(主机,文件名,扩展名).

2)执行图像标题的curl请求,如下所述:How can one check to see if a remote file exists using PHP?并验证它是否具有有效的png或jpg mime类型和HTTP 200返回码.

3)验证文件名和扩展名(来自上面的pathinfo)是一个有效的png或jpg文件(我不接受GIF等)

4)最后,将图像路径数据存储在DB的多个列中(转义数据)

我错过了什么吗?还有潜伏的危险吗?我想也许我应该在显示器端重新进行卷曲功能,以确保图像仍在那里并且它仍然是图像.

谢谢你的建议.

解决方法

确保它不是驴色情片?

……说真的,我唯一能想到的是它是一个脚本/ exe / bin,它将图像输出到屏幕上(想想PHP / GD),但同时在后台做了其他事情.

例如,CAPTCHAs输出图像,但可以通过调用< img src =“/ img / captcha.php”... />来同时(在幕后)在会话中存储“正确答案”. .

没有理由不能使用mod_rewrite用< img src =“/ img / captcha.jpg”... />来调用相同的PHP脚本.可以设置HTTP标头以将MIME类型报告为“image / jpg”,响应为200.

我想你几乎可以做任何事情;虽然您可以使用GD库来读取用户提交的图像,并在系统上创建它的副本(作为图像)而不是远程链接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读