【问题标题】:Is there any way to block image from getting displayed有什么方法可以阻止图像显示
【发布时间】:2010-12-03 09:57:48
【问题描述】:

这是网址http://www.website.com/uploads/pvtimages/image.png

我不希望图像显示给任何人,即使是我,但可以下载

i...e <a href="http://www.website.com/uploads/pvtimages/image.png">Download</a> i..e 仅来自特定页面 (download.php)

我希望保护该文件夹中的所有图像。

有可能吗??使用 php 或 .htaccess 或两者兼而有之?

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:

    是的,将以下标头放入您的 .htaccess 文件中:

    <Files image.png>
    Header set Content-Disposition attachment
    </Files>
    

    当然,您也可以通过 PHP 发送此标头,但 htacesss 在这种情况下更有意义。但是,它只会阻止它在浏览器中显示。 知道链接的人都可以下载! 除非您为您的网站添加密码保护之类的功能,否则您无法真正保护图像。

    您可以通过引用检查来防止一些盗链 - 但这只是为了阻止愚蠢的网站管理员嵌入您的图片。它不会阻止任何真正想要你的东西的人。但如果这对你没问题.. 看看Allow/deny image hotlinking with .htaccess

    【讨论】:

    • 请参阅我的回答,了解如何正确保护内容以使其无法下载,因为 没有指向该资源的有效链接。
    • 很好,如何阻止查看该文件夹中的所有图像?
    • 只需去掉它周围的 块。但是确保您知道它的作用 - 它不会增加任何安全性,它只会导致出现下载窗口而不是浏览器显示图像。
    【解决方案2】:

    我最近似乎经常回答这个问题...看,如果您不希望通过 URL 访问某些内容,则不需要使用 .htaccess 或 PHP。根本不要把它放在文档根目录中。

    请参阅my answer here,它解释了您应该使用的结构。然后您可以使用PHP下载它;我的answer here 解释了如何使用 PHP 下载文件。以这种方式做事更易于维护、更易于实施且更安全。

    请注意,这不仅适用于图像等,还适用于您的 PHP 库和其他任何东西。通常,我在文档根目录中有一个 PHP 文件(例如 index.php)、一点 CSS、JS 和一些图像。其他所有内容通常都应该在其他地方。

    【讨论】:

    • 我认为这不能回答问题。他确实希望图像可以下载。 ThiefMaster的回答比较合适
    • 我认为您没有阅读我的回答;它允许下载图像,但阻止它通过 URL 直接下载,这正是他所要求的(通过 download.php 下载)。
    【解决方案3】:

    将此添加到您的.htaccess

    RewriteEngine On
    
    RewriteRule ^(?:uploads/pvtimages)\b - [F,L]
    

    当然也可以将它从你的文档根目录中取出。

    这意味着您需要通过 PHP 提供图像。只需readfile() 并发送正确的标题。

    【讨论】:

      猜你喜欢
      • 2022-06-15
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 2011-04-25
      • 1970-01-01
      • 2013-05-17
      相关资源
      最近更新 更多