gpt4 book ai didi

php - public_html 上面图片的存储和读取

转载 作者:可可西里 更新时间:2023-11-01 00:04:25 26 4
gpt4 key购买 nike

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

我的文件结构:

 - userimages
image.jpg
image2.jpg

- public_html
filetoserveimage.html

我尝试像这样链接到 userimages 文件夹中的图像:

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

但它不起作用。我在这里缺少什么吗?如果您有任何更好的建议,请告诉我。我试图阻止公共(public)用户执行他们可能上传的具有潜在危险的文件。就像额外的安全措施一样。谢谢!

最佳答案

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

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

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

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

您似乎只想向刚刚下载了引用这些图像的页面的用户提供图像。

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

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

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

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

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

关于php - public_html 上面图片的存储和读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com