【问题标题】:How to serve an image without possibility of easy saving it from browser?如何在无法从浏览器轻松保存的情况下提供图像?
【发布时间】:2012-11-14 16:29:05
【问题描述】:

我只想在我的网站上显示一组图像。 我想避免最终用户轻松保存的可能性。 我知道用户可以使用打印屏幕保存图像,但这不是一个简单的方法,因为之后需要一些工作。

【问题讨论】:

  • 查找“Shrinkwrapping”,这是一种在要保护的图像上放置透明 gif 的技术。这将停止在浏览器中右键单击-> 保存的能力。显然,任何知情的人都可以获得图像,但这会阻止大多数非技术用户。

标签: php javascript apache


【解决方案1】:

可以将图像绘制到画布元素,从而阻止用户使用 DOM 检查器或右键单击菜单保存图像。不过,这种技术不适用于旧版浏览器。

【讨论】:

    【解决方案2】:
    1. 在小程序中显示(例如 flash、java)
    2. 使用服务器端操作将图像分割成随机大小的正方形/矩形,并使用客户端表格以“组装”格式显示这些部分
    3. 使用 CSS 叠加层,以便右键单击图像获得叠加层而不是图像
    4. 放弃吧,因为如果有人想窃取您的形象,他们会的。

    【讨论】:

      【解决方案3】:

      不可能 100% 阻止他们这样做,但你可以让它变得更难。

      您可以有一个不允许直接访问它的 .htaccess 规则(必须从您网站的一个网页加载)

      RewriteEngine on
      RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
      RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
      

      然后您可以阻止右键单击您的网站,这样他们就不能只单击复制图像。看: How do I disable right click on my web page?

      请注意,没有好的解决方案。

      【讨论】:

      • 我可以使用透明层覆盖而不是禁用右键单击。
      【解决方案4】:

      你可以:

      • 将其拆分为多个部分(也需要对 HTML 代码进行一些更改)
      • 以 css background-image 的形式应用于完全透明的 gif / png *
      • 使用gd(在php中)应用水印
      • 或混合使用这些

      但是用户仍然可以使用简单的打印屏幕保存它,就像你写的那样。

      (*) f.ex:

      <img src="blank.gif" style="width: 200px; height: 100px; background-image: url('image.jpg');" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-24
        • 1970-01-01
        • 1970-01-01
        • 2015-08-17
        • 2020-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多