php - 仅使用 CentOS 安全设置的本地域上的 file_get_contents() 安全问题

标签 php linux ssh centos

我知道 SO 上有一百个关于 file_get_contents() 的帖子,但似乎没有什么可以解决我的问题:

十五分钟前一切都工作正常,直到我通过 SSH 运行一些安全内容。我添加了一些 iptables 规则和 file_get_contents,并运行了 service proftpd restart 和一些安装/卸载,这似乎以某种方式禁用了 PHP 的 fopen() 功能。

在 php.ini 中,我有: allow_url_fopen = onextension=php_openssl.dll on

我正在尝试一个简单的测试:(此文件可以通过浏览器正常加载)

echo file_get_contents("https://www.this-domain.com/logo.gif");
//...failed to open stream:HTTP request failed! HTTP/1.1 404 Not Found...

//However both of the following work absolutely fine:

echo file_get_contents("https://www.google.com/");
echo file_get_contents("/home/user/domains/this-domain.com/private_html/media/logospin.gif");

我无法更改 file_get_contents() 代码(更改为 cURL 或其他) - 这是服务器设置问题。可能与防火墙有关。有人可以建议修复吗?

最佳答案

问题实际上是 DNS 问题。由于某种原因,file_get_contents() 奇怪地通过我们的备份域名服务器(ns3 和 ns4)进行路由,而浏览器则通过主域名服务器(ns1 和 ns2)进行路由。与主服务器不同,备份指向不同的服务器,该服务器尚不具有相同的文件 - 因此会出现不寻常的 404。

我在修改防火墙等之前几个小时就设置了这些备份名称服务器,当它们传播时,看起来非常像 ssh 命令已经使 file_get_contents() 离线。

感谢大家的评论 - 非常感谢。

关于php - 仅使用 CentOS 安全设置的本地域上的 file_get_contents() 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348089/

相关文章:

linux - 如何对文件中的特定行使用 sed

linux - Ghostscript:如何包含它过去包含的 Apple ImageWriter 驱动程序?

linux - 如何在另一台计算机上运行 Rails 应用程序,同时仍在我自己的计算机上编码?

php - 覆盖 laravel 验证消息

php - 打开购物车 : Send order confirmation email to multiple email addresses

php - mysqli 返回的行数不正确

php - Laravel:为什么在实例化其提供的类时不调用已注册的服务提供者?

php - .PO 到 .MO - 程序化转换 (PHP)

Git 远程 : Error: fatal: protocol error: bad line length character: Unab

php - Magento甚至通过SSH导出内存不足