public_html上面存储和读取图片

2023-11-29

我正在尝试保护我的 PHP 图像上传脚本,我必须跨越的最后一个障碍是使用户无法直接执行图像,但服务器仍然可以在网页中提供它们。我尝试更改文件夹的所有权和权限但无济于事,因此我尝试存储 public_html 上面的图像并将它们显示在存储在 public_html 中的页面中。

我的文件结构:

 - userimages
   image.jpg
   image2.jpg

 - public_html
   filetoserveimage.html

我尝试链接到 userimages 文件夹中的图像,如下所示:

<img src="../userimages/image.jpg">

但这不起作用。我在这里缺少什么吗?如果您有更好的建议请告诉我。我试图阻止公共用户执行他们可能上传的潜在危险文件。只是作为额外的安全措施。谢谢!


你想要的东西基本上是不可能的。

浏览器加载页面的方式(在非常基本的意义上)是这样的:

第1步:下载页面。 步骤2:解析页面。 第 3 步:下载页面内容中引用的任何内容(图像、样式表、javascript 等)

每个“下载”事件都是原子的。

看起来您只想向刚刚下载了引用这些图像的页面的人提供图像。

正如 PHP Jedi 所示,您可以通过 PHP 传递文件。您可以扩展他的代码,并检查请求上的 HTTP_REFERER 以确保人们不会“仅”抓取图像。

现在,通过 PHP passthru 脚本提供每个图像的效率不高,但它可以工作。

人们想要这样做的最常见原因是避免“热链接”——当人们在其他站点上创建引用您服务器上图像的图像标签时。当他们这样做时,您会花费资源来处理其他人页面上出现的请求。

如果这就是您真正想避免的,您可以使用 mod_rewrite 来检查引用者。

可以找到关于盗链/反盗链的看起来不错的讨论here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

public_html上面存储和读取图片 的相关文章