【问题标题】:Image on webpage stopped loading after SSLSSL 后网页上的图像停止加载
【发布时间】:2021-11-01 19:36:17
【问题描述】:

我最近将我的网站(共享主机)从 HTTP 更改为 HTTPS。我能够加载网页,但图像抛出 403 错误。 这是我的测试页面:https://www.manogat.com/ssltest.html

=====================
<!DOCTYPE html>
<html lang="mr-IN">
  <head>
    <title>ssl image loading test</title>
  </head>
<body>
<div class="header">
  <img style="float:left;" src="img/mano_logo.png" alt="" id="logo-image" >
</div>
</body>
</html>
=====================

浏览器为 logo.png 抛出错误 403。在 console.log 中使用这个 url https://www.manogat.com/img/mano_logo.png

如果我将 url 复制并粘贴到单独的窗口或选项卡中,图像会正常加载。

切换到 ssl/https 后有什么问题? 请帮忙

【问题讨论】:

  • 您是否有任何基于 HTTP 引荐来源的访问控制?忘记在其中从 HTTP 更改为 HTTPS URL?
  • 我没有想到任何这样的访问控制。我应该去哪里找?
  • 不知道,剩下的这些东西你在哪里配置?托管面板?

标签: apache .htaccess ssl https


【解决方案1】:

显然存在某种形式的基于Referer 标头的访问控制。这可以很容易地检查。使用 https://... 引荐来源网址会给出 403 Forbidden:

$ curl -v -H "Referer: https://www.manogat.com/ssltest.html"  https://www.manogat.com/img/mano_logo.png
...
< HTTP/1.1 403 Forbidden

没有Referer标头,而是给出200:

$ curl -v https://www.manogat.com/img/mano_logo.png
...
< HTTP/1.1 200 OK

使用http:// 而不是https:// 推荐人也可以:

$ curl -v -H "Referer: http://www.manogat.com/ssltest.html"  https://www.manogat.com/img/mano_logo.png
...
< HTTP/1.1 200 OK

请注意,检查似乎明确查找空标题或http://www.manogat.com。如果将 Referer 标头设置为不同的 HTTP 站点,例如 http://example.com,则会得到 403。

目前尚不清楚此检查来自何处,因为对主机、服务器和配置一无所知。

【讨论】:

  • 嗯。我可以看到您在上面演示的内容。但是,在您的第二段中,您说 ....使用 http:// 而不是 https:// 引荐来源网址也可以:........但在示例中您仍然使用 https ..... ..(它抛出403)............我认为,这个例子需要更正............在我这边,这样的引荐来源控制在哪里?
  • @user1940163:抱歉,剪切和粘贴错误。 “。就我而言,这样的引荐来源控制在哪里” - 服务器配置、Web 应用程序,甚至可能是它前面的一些 WAF ... - 很难说,因为对你的绝对一无所知设置。
  • 是的。我得到了它。我自己在 17 年前就破解了 .htaccess 文件,这是起始行之一............我添加了一行 SetEnvIfNoCase Referer "^.............com" allowed=1 以允许 https 在推荐人,它对我有用......谢谢您的指导。
猜你喜欢
  • 1970-01-01
  • 2012-11-29
  • 2012-10-22
  • 2018-03-03
  • 2014-04-14
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2019-09-19
相关资源
最近更新 更多